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, ESL_EVENT_CLONE, todup->subclass_name) != ESL_SUCCESS) { return ESL_FAIL; } (*event)->event_id = todup->event_id; (*event)->event_user_data = todup->event_user_data; (*event)->bind_user_data = todup->bind_user_data; for (hp = todup->headers; hp; hp = hp->next) { esl_event_add_header_string(*event, ESL_STACK_BOTTOM, hp->name, hp->value); } if (todup->body) { (*event)->body = DUP(todup->body); } (*event)->key = todup->key; return ESL_SUCCESS; }
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, ESL_EVENT_CLONE, todup->subclass_name) != ESL_SUCCESS) { return ESL_GENERR; } (*event)->event_id = todup->event_id; (*event)->event_user_data = todup->event_user_data; (*event)->bind_user_data = todup->bind_user_data; (*event)->flags = todup->flags; for (hp = todup->headers; hp; hp = hp->next) { if (todup->subclass_name && !strcmp(hp->name, "Event-Subclass")) { continue; } if (hp->idx) { int i; for (i = 0; i < hp->idx; i++) { esl_event_add_header_string(*event, ESL_STACK_PUSH, hp->name, hp->array[i]); } } else { esl_event_add_header_string(*event, ESL_STACK_BOTTOM, hp->name, hp->value); } } if (todup->body) { (*event)->body = DUP(todup->body); } (*event)->key = todup->key; return ESL_SUCCESS; }
ESLevent::ESLevent(const char *type, const char *subclass_name) { esl_event_types_t event_id; event_construct_common(); if (esl_name_event(type, &event_id) != ESL_SUCCESS) { event_id = ESL_EVENT_MESSAGE; } if (!esl_strlen_zero(subclass_name) && event_id != ESL_EVENT_CUSTOM) { esl_log(ESL_LOG_WARNING, "Changing event type to custom because you specified a subclass name!\n"); event_id = ESL_EVENT_CUSTOM; } if (esl_event_create_subclass(&event, event_id, subclass_name) != ESL_SUCCESS) { esl_log(ESL_LOG_ERROR, "Failed to create event!\n"); event = NULL; } serialized_string = NULL; mine = 1; }