From 5fb3a88f714aeef714f635503db8f28e35a71836 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 13 Apr 2010 13:35:38 -0500 Subject: [PATCH] ESL-36 --- libs/esl/src/esl.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/libs/esl/src/esl.c b/libs/esl/src/esl.c index b99e401402..70c91a2d20 100644 --- a/libs/esl/src/esl.c +++ b/libs/esl/src/esl.c @@ -831,7 +831,7 @@ ESL_DECLARE(esl_status_t) esl_recv_event(esl_handle_t *handle, int check_q, esl_ 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_DECLARE(esl_status_t) esl_recv_event(esl_handle_t *handle, int check_q, esl_ 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 @@ ESL_DECLARE(esl_status_t) esl_recv_event(esl_handle_t *handle, int check_q, esl_ c++; } } - + if (!revent) { goto fail; } @@ -955,6 +947,8 @@ ESL_DECLARE(esl_status_t) esl_recv_event(esl_handle_t *handle, int check_q, esl_ revent->body = body; } + parse_event: + if (save_event) { *save_event = revent; revent = NULL;