fix socket race

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12605 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale
2009-03-14 19:23:07 +00:00
parent dfda1d8f27
commit 73e738ab9d
5 changed files with 106 additions and 41 deletions

View File

@@ -367,22 +367,25 @@ ESL_DECLARE(esl_status_t) esl_event_add_body(esl_event_t *event, const char *fmt
ESL_DECLARE(void) esl_event_destroy(esl_event_t **event)
{
esl_event_t *ep = *event;
esl_event_header_t *hp, *this;
esl_event_t *ep = *event, *this_event;
esl_event_header_t *hp, *this_header;
if (ep) {
for (hp = ep->headers; hp;) {
this = hp;
for (ep = *event ; ep ;) {
this_event = ep;
ep = ep->next;
for (hp = this_event->headers; hp;) {
this_header = hp;
hp = hp->next;
FREE(this->name);
FREE(this->value);
memset(this, 0, sizeof(*this));
FREE(this);
FREE(this_header->name);
FREE(this_header->value);
memset(this_header, 0, sizeof(*this_header));
FREE(this_header);
}
FREE(ep->body);
FREE(ep->subclass_name);
memset(ep, 0, sizeof(*ep));
FREE(ep);
FREE(this_event->body);
FREE(this_event->subclass_name);
memset(this_event, 0, sizeof(*this_event));
FREE(this_event);
}
*event = NULL;
}