Revision
17282
Author
anthm
Date
2010-04-13 13:35:38 -0500 (Tue, 13 Apr 2010)

Log Message

ESL-36

Modified Paths

Diff

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;