aboutsummaryrefslogtreecommitdiffstats
path: root/main/event.c
diff options
context:
space:
mode:
authorfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-29 16:03:51 +0000
committerfile <file@f38db490-d61c-443f-a65b-d21fe96a405b>2007-08-29 16:03:51 +0000
commitf64bc26def9286a2e690319f4da62bba00d114f3 (patch)
tree7c653bbdc7436b0bb37db74b701171c62191b172 /main/event.c
parentb959f9e59d3001917105d04f0d8e84ffb76f1532 (diff)
To keep others happy... revert part of my additions so trunk works.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81344 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/event.c')
-rw-r--r--main/event.c20
1 files changed, 13 insertions, 7 deletions
diff --git a/main/event.c b/main/event.c
index d7deede51..73858c885 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;
}