Mercurial > hg
comparison mcabber/src/jab_iq.c @ 1461:8fa24a6d1a93
Improve Remote Controlling Clients
The XEP recommends adding the node to the IQ response.
Some clients seem not to understand the answer when it is omitted.
Problem reported by Rhaamo and js (thanks to js for spotting the
node issue!).
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sat, 12 Apr 2008 13:35:03 +0200 |
parents | af54d33facd0 |
children | 77afd831f8f7 |
comparison
equal
deleted
inserted
replaced
1460:af54d33facd0 | 1461:8fa24a6d1a93 |
---|---|
1067 { | 1067 { |
1068 xmlnode x; | 1068 xmlnode x; |
1069 xmlnode myquery; | 1069 xmlnode myquery; |
1070 jid requester_jid; | 1070 jid requester_jid; |
1071 const struct adhoc_command *command; | 1071 const struct adhoc_command *command; |
1072 const char *node; | |
1072 bool from_self; | 1073 bool from_self; |
1074 | |
1073 x = jutil_iqnew(JPACKET__RESULT, NS_DISCO_ITEMS); | 1075 x = jutil_iqnew(JPACKET__RESULT, NS_DISCO_ITEMS); |
1074 xmlnode_put_attrib(x, "id", id); | 1076 xmlnode_put_attrib(x, "id", id); |
1075 xmlnode_put_attrib(x, "to", xmlnode_get_attrib(xmldata, "from")); | 1077 xmlnode_put_attrib(x, "to", xmlnode_get_attrib(xmldata, "from")); |
1076 myquery = xmlnode_get_tag(x, "query"); | 1078 myquery = xmlnode_get_tag(x, "query"); |
1079 | |
1080 node = xmlnode_get_attrib(xmlnode_get_tag(xmldata, "query"), "node"); | |
1081 if (node) | |
1082 xmlnode_put_attrib(myquery, "node", node); | |
1077 | 1083 |
1078 requester_jid = jid_new(conn->p, xmlnode_get_attrib(xmldata, "from")); | 1084 requester_jid = jid_new(conn->p, xmlnode_get_attrib(xmldata, "from")); |
1079 from_self = !jid_cmpx(conn->user, requester_jid, JID_USER | JID_SERVER); | 1085 from_self = !jid_cmpx(conn->user, requester_jid, JID_USER | JID_SERVER); |
1080 | 1086 |
1081 for (command = adhoc_command_list ; command->name ; command++) { | 1087 for (command = adhoc_command_list ; command->name ; command++) { |
1339 | 1345 |
1340 static void handle_iq_disco_items(jconn conn, char *from, const char *id, | 1346 static void handle_iq_disco_items(jconn conn, char *from, const char *id, |
1341 xmlnode xmldata) | 1347 xmlnode xmldata) |
1342 { | 1348 { |
1343 xmlnode x; | 1349 xmlnode x; |
1344 char *node; | 1350 const char *node; |
1345 x = xmlnode_get_tag(xmldata, "query"); | 1351 x = xmlnode_get_tag(xmldata, "query"); |
1346 node = xmlnode_get_attrib(x, "node"); | 1352 node = xmlnode_get_attrib(x, "node"); |
1347 if (node) { | 1353 if (node) { |
1348 if (!strcmp(node, NS_COMMANDS)) { | 1354 if (!strcmp(node, NS_COMMANDS)) { |
1349 handle_iq_commands_list(conn, from, id, xmldata); | 1355 handle_iq_commands_list(conn, from, id, xmldata); |