diff --git a/libs/esl/src/esl_event.c b/libs/esl/src/esl_event.c index 7abf063832..2c4cfec5b2 100644 --- a/libs/esl/src/esl_event.c +++ b/libs/esl/src/esl_event.c @@ -59,6 +59,7 @@ static char *my_dup(const char *s) */ static const char *EVENT_NAMES[] = { "CUSTOM", + "CLONE", "CHANNEL_CREATE", "CHANNEL_DESTROY", "CHANNEL_STATE", @@ -147,7 +148,7 @@ ESL_DECLARE(esl_status_t) esl_event_create_subclass(esl_event_t **event, esl_eve { *event = NULL; - if ((event_id > 0 && event_id != ESL_EVENT_CUSTOM) && subclass_name) { + if ((event_id != ESL_EVENT_CLONE && event_id != ESL_EVENT_CUSTOM) && subclass_name) { return ESL_FAIL; } @@ -157,7 +158,7 @@ ESL_DECLARE(esl_status_t) esl_event_create_subclass(esl_event_t **event, esl_eve memset(*event, 0, sizeof(esl_event_t)); - if (event_id) { + if (event_id != ESL_EVENT_CLONE) { (*event)->event_id = event_id; esl_event_add_header_string(*event, ESL_STACK_BOTTOM, "Event-Name", esl_event_name((*event)->event_id)); } @@ -392,7 +393,7 @@ ESL_DECLARE(esl_status_t) esl_event_dup(esl_event_t **event, esl_event_t *todup) { esl_event_header_t *hp; - if (esl_event_create_subclass(event, 0, todup->subclass_name) != ESL_SUCCESS) { + if (esl_event_create_subclass(event, ESL_EVENT_CLONE, todup->subclass_name) != ESL_SUCCESS) { return ESL_FAIL; } diff --git a/libs/esl/src/include/esl_event.h b/libs/esl/src/include/esl_event.h index 055418b10c..d9e7a3e4ba 100644 --- a/libs/esl/src/include/esl_event.h +++ b/libs/esl/src/include/esl_event.h @@ -47,6 +47,7 @@ typedef enum { typedef enum { ESL_EVENT_CUSTOM, + ESL_EVENT_CLONE, ESL_EVENT_CHANNEL_CREATE, ESL_EVENT_CHANNEL_DESTROY, ESL_EVENT_CHANNEL_STATE, diff --git a/src/include/switch_types.h b/src/include/switch_types.h index 4a493b5a1c..87a193913f 100644 --- a/src/include/switch_types.h +++ b/src/include/switch_types.h @@ -1160,6 +1160,7 @@ typedef uint32_t switch_io_flag_t; */ typedef enum { SWITCH_EVENT_CUSTOM, + SWITCH_EVENT_CLONE, SWITCH_EVENT_CHANNEL_CREATE, SWITCH_EVENT_CHANNEL_DESTROY, SWITCH_EVENT_CHANNEL_STATE, diff --git a/src/switch_event.c b/src/switch_event.c index e6e3bac5c6..f853145fec 100644 --- a/src/switch_event.c +++ b/src/switch_event.c @@ -111,6 +111,7 @@ static char *my_dup(const char *s) */ static char *EVENT_NAMES[] = { "CUSTOM", + "CLONE", "CHANNEL_CREATE", "CHANNEL_DESTROY", "CHANNEL_STATE", @@ -598,7 +599,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_subclass_detailed(const char *event = NULL; - if ((event_id > 0 && event_id != SWITCH_EVENT_CUSTOM) && subclass_name) { + if ((event_id != SWITCH_EVENT_CLONE && event_id != SWITCH_EVENT_CUSTOM) && subclass_name) { return SWITCH_STATUS_GENERR; } @@ -611,7 +612,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_create_subclass_detailed(const char memset(*event, 0, sizeof(switch_event_t)); - if (event_id) { + if (event_id != SWITCH_EVENT_CLONE) { (*event)->event_id = event_id; switch_event_prep_for_delivery_detailed(file, func, line, *event); } @@ -813,7 +814,7 @@ SWITCH_DECLARE(switch_status_t) switch_event_dup(switch_event_t **event, switch_ { switch_event_header_t *hp; - if (switch_event_create_subclass(event, 0, todup->subclass_name) != SWITCH_STATUS_SUCCESS) { + if (switch_event_create_subclass(event, SWITCH_EVENT_CLONE, todup->subclass_name) != SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_GENERR; }