summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlec L Davis <sivad.a@paradise.net.nz>2013-04-16 23:44:18 +0000
committerAlec L Davis <sivad.a@paradise.net.nz>2013-04-16 23:44:18 +0000
commitfed7249ad1a20f5c6ecf8e657a2e83f4af8b379b (patch)
treed64c14190bf3809d81f21bd953a6970d6504af28
parent1f71abdfaeeaea0273e862b8fe9585e8e9dbd370 (diff)
res_xmpp and res_jabber need to search 'cachable' in the attrib section of the received IE, not data.
(issue ASTERISK-20175) (closes issue ASTERISK-21429) (closes issue ASTERISK-21069) (closes issue ASTERISK-21164) Reported by: alecdavis Tested by: alecdavis alecdavis (license 585) Review https://reviewboard.asterisk.org/r/2452/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@385939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rw-r--r--res/res_jabber.c4
-rw-r--r--res/res_xmpp.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/res/res_jabber.c b/res/res_jabber.c
index 04bc614e9..69f366522 100644
--- a/res/res_jabber.c
+++ b/res/res_jabber.c
@@ -3355,10 +3355,10 @@ static int aji_handle_pubsub_event(void *data, ikspak *pak)
return IKS_FILTER_EAT;
}
if (!strcasecmp(iks_name(item_content), "state")) {
- device_state = iks_find_cdata(item, "state");
- if ((cachable_str = iks_find_cdata(item, "cachable"))) {
+ if ((cachable_str = iks_find_attrib(item_content, "cachable"))) {
sscanf(cachable_str, "%30d", &cachable);
}
+ device_state = iks_find_cdata(item, "state");
ast_publish_device_state_full(item_id,
ast_devstate_val(device_state),
cachable == AST_DEVSTATE_CACHABLE ? AST_DEVSTATE_CACHABLE : AST_DEVSTATE_NOT_CACHABLE,
diff --git a/res/res_xmpp.c b/res/res_xmpp.c
index f9cfdac11..dea837204 100644
--- a/res/res_xmpp.c
+++ b/res/res_xmpp.c
@@ -1470,10 +1470,10 @@ static int xmpp_pubsub_handle_event(void *data, ikspak *pak)
return IKS_FILTER_EAT;
}
if (!strcasecmp(iks_name(item_content), "state")) {
- device_state = iks_find_cdata(item, "state");
- if ((cachable_str = iks_find_cdata(item, "cachable"))) {
+ if ((cachable_str = iks_find_attrib(item_content, "cachable"))) {
sscanf(cachable_str, "%30d", &cachable);
}
+ device_state = iks_find_cdata(item, "state");
ast_publish_device_state_full(item_id,
ast_devstate_val(device_state),
cachable == AST_DEVSTATE_CACHABLE ? AST_DEVSTATE_CACHABLE : AST_DEVSTATE_NOT_CACHABLE,