git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@2833
d0543943-73ff-0310-b7d9-
9358b9ac24b2
static switch_status_t read_packet(listener_t *listener, switch_event_t **event, uint32_t timeout)
{
switch_size_t mlen;
- char mbuf[1024] = "";
+ char mbuf[2048] = "";
char buf[1024] = "";
switch_size_t len;
switch_status_t status = SWITCH_STATUS_SUCCESS;
void *pop;
char *ptr;
uint8_t crcount = 0;
-
+ uint32_t max_len = sizeof(mbuf);
*event = NULL;
start = time(NULL);
ptr = mbuf;
}
if (mlen) {
- bytes++;
+ bytes += mlen;
do_sleep = 0;
if (*mbuf == '\r' || *mbuf == '\n') { /* bah */
ptr = mbuf;
mbuf[0] = '\0';
+ bytes = 0;
continue;
}
crcount = 0;
}
ptr++;
+
+ if (bytes >= max_len) {
+ crcount = 2;
+ }
+
if (crcount == 2) {
char *next;
char *cur = mbuf;
-
+ bytes = 0;
while(cur) {
if ((next = strchr(cur, '\r')) || (next = strchr(cur, '\n'))) {
while (*next == '\r' || *next == '\n') {