From 618ea0f2c8716df4f0e6a555f3513725301985db Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Sat, 20 Aug 2011 19:45:36 -0400 Subject: [PATCH] FS-3488 --resolve --- src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c index 9a09e802c3..92e30ecfb6 100644 --- a/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c +++ b/src/mod/event_handlers/mod_erlang_event/mod_erlang_event.c @@ -549,6 +549,7 @@ static switch_status_t check_attached_sessions(listener_t *listener) const void *key; void * value; switch_hash_index_t *iter; + /* event used to track sessions to remove */ switch_event_t *event = NULL; switch_event_header_t *header = NULL; switch_event_create_subclass(&event, SWITCH_EVENT_CLONE, NULL); @@ -570,6 +571,7 @@ static switch_status_t check_attached_sessions(listener_t *listener) status = notify_new_session(listener, sp); if (status != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_UUID_LOG(sp->uuid_str), SWITCH_LOG_DEBUG, "Notifying new session failed\n"); + /* mark this session for removal */ switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "delete", (const char *) key); continue; } @@ -650,6 +652,10 @@ static switch_status_t check_attached_sessions(listener_t *listener) } switch_thread_rwlock_unlock(listener->session_rwlock); + + /* remove the temporary event */ + switch_event_destroy(&event); + if (prefs.done) { return SWITCH_STATUS_FALSE; /* we're shutting down */ } else {