Modified: freeswitch/trunk/libs/esl/src/esl.c (17281 => 17282)
--- freeswitch/trunk/libs/esl/src/esl.c 2010-04-13 14:21:51 UTC (rev 17281)
+++ freeswitch/trunk/libs/esl/src/esl.c 2010-04-13 18:35:38 UTC (rev 17282)
@@ -831,7 +831,7 @@
char *c;
esl_ssize_t rrval;
int crc = 0;
- esl_event_t *revent = NULL, *qevent = NULL;
+ esl_event_t *revent = NULL;
char *beg;
char *hname, *hval;
char *col;
@@ -856,19 +856,11 @@
esl_event_safe_destroy(&handle->last_ievent);
if (check_q && handle->race_event) {
- qevent = handle->race_event;
+ revent = handle->race_event;
handle->race_event = handle->race_event->next;
- qevent->next = NULL;
+ revent->next = NULL;
- if (save_event) {
- *save_event = qevent;
- qevent = NULL;
- } else {
- handle->last_event = qevent;
- }
-
- esl_mutex_unlock(handle->mutex);
- return ESL_SUCCESS;
+ goto parse_event;
}
memset(handle->header_buf, 0, sizeof(handle->header_buf));
@@ -929,7 +921,7 @@
c++;
}
}
-
+
if (!revent) {
goto fail;
}
@@ -955,6 +947,8 @@
revent->body = body;
}
+ parse_event:
+
if (save_event) {
*save_event = revent;
revent = NULL;