From c9445d4a684fbacdf6d2502ce82da46c6720ff38 Mon Sep 17 00:00:00 2001 From: Joshua Colp <jcolp@digium.com> Date: Wed, 29 Aug 2007 16:03:51 +0000 Subject: [PATCH] To keep others happy... revert part of my additions so trunk works. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@81344 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/event.h | 2 +- main/event.c | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/asterisk/event.h b/include/asterisk/event.h index 767ef1cee2..3133234bc5 100644 --- a/include/asterisk/event.h +++ b/include/asterisk/event.h @@ -450,7 +450,7 @@ enum ast_event_ie_type ast_event_iterator_get_ie_type(struct ast_event_iterator * * \return This returns the payload of the information element as a uint. */ -uint32_t ast_event_iteragor_get_ie_uint(struct ast_event_iterator *iterator); +uint32_t ast_event_iterator_get_ie_uint(struct ast_event_iterator *iterator); /*! * \brief Get the value of the current IE in the iterator as a string payload diff --git a/main/event.c b/main/event.c index d7deede514..73858c885d 100644 --- a/main/event.c +++ b/main/event.c @@ -380,7 +380,7 @@ enum ast_event_ie_type ast_event_iterator_get_ie_type(struct ast_event_iterator return iterator->ie->ie_type; } -uint32_t ast_event_iteragor_get_ie_uint(struct ast_event_iterator *iterator) +uint32_t ast_event_iterator_get_ie_uint(struct ast_event_iterator *iterator) { return ntohl(*iterator->ie->ie_payload); } @@ -416,13 +416,19 @@ const char *ast_event_get_ie_str(const struct ast_event *event, enum ast_event_i const void *ast_event_get_ie_raw(const struct ast_event *event, enum ast_event_ie_type ie_type) { - struct ast_event_iterator iterator; - - for (ast_event_iterator_init(&iterator, event); !ast_event_iterator_next(&iterator); ) { - if (ast_event_iterator_get_ie_type(&iterator) == ie_type) - return ast_event_iterator_get_ie_raw(&iterator); + struct ast_event_ie *ie; + uint16_t event_len; + + ie_type = ntohs(ie_type); + event_len = ntohs(event->event_len); + + ie = ((void *) event) + sizeof(*event); + + while ((((void *) ie) - ((void *) event)) < event_len) { + if (ie->ie_type == ie_type) + return ie->ie_payload; } - + return NULL; } -- GitLab