X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=bchannel.c;fp=bchannel.c;h=b6107b689bc919367ff5b569465f1cbe24079036;hp=51423a1762cb45eb408e101242e5b998000b7a96;hb=8fb861ef9ece9f4bd68ef79a77625ec23c27aef1;hpb=34b17bad86b02fae864505ae5fe7055a2bd63290 diff --git a/bchannel.c b/bchannel.c index 51423a1..b6107b6 100644 --- a/bchannel.c +++ b/bchannel.c @@ -449,9 +449,9 @@ void bchannel_transmit(struct bchannel *bchannel, unsigned char *data, int len) bchannel->test = (bchannel->test + len) & 7; #endif if (bchannel->nodsp_queue) { - space = (bchannel->nodsp_queue_out - bchannel->nodsp_queue_in) & (QUEUE_BUFFER_SIZE - 1); + space = (bchannel->nodsp_queue_out - bchannel->nodsp_queue_in - 1) & (QUEUE_BUFFER_SIZE - 1); if (len > space) { - CERROR(bchannel->call, NULL, "Queue buffer overflow.\n"); + CERROR(bchannel->call, NULL, "Queue buffer overflow, space is %d, len is %d.\n", space, len); return; } p = buff + MISDN_HEADER_LEN; @@ -485,6 +485,11 @@ static void bchannel_send_queue(struct bchannel *bchannel) len = (bchannel->nodsp_queue_in - bchannel->nodsp_queue_out) & (QUEUE_BUFFER_SIZE - 1); if (len == 0) return; /* mISDN driver received all load */ +#if 0 + printf("%4d:(%s|%s)\n", bchannel->nodsp_queue_out, + "----------------------------------------------------------------"+64-len/(8192/64), + " "+len/(8192/64)); +#endif if (len > 1024) len = 1024; frm->prim = PH_DATA_REQ;