Mercurial > pidgin.yaz
comparison libpurple/protocols/jabber/iq.c @ 25718:4bc74deeb503
propagate from branch 'im.pidgin.pidgin' (head 434563a4b8fadb9593c241db4bb5ffd0bf2c0627)
to branch 'im.pidgin.soc.2008.vv' (head 59d05cb38af9346d82ce57477273f7b381054bcc)
author | Mike Ruprecht <maiku@soc.pidgin.im> |
---|---|
date | Sat, 09 Aug 2008 02:24:38 +0000 |
parents | 517062503b48 |
children | bd598b606ca4 4d752d07a126 |
comparison
equal
deleted
inserted
replaced
23742:de8f2d3e538a | 25718:4bc74deeb503 |
---|---|
26 | 26 |
27 #include "buddy.h" | 27 #include "buddy.h" |
28 #include "disco.h" | 28 #include "disco.h" |
29 #include "google.h" | 29 #include "google.h" |
30 #include "iq.h" | 30 #include "iq.h" |
31 #include "jingle.h" | |
31 #include "oob.h" | 32 #include "oob.h" |
32 #include "roster.h" | 33 #include "roster.h" |
33 #include "si.h" | 34 #include "si.h" |
34 #include "ping.h" | 35 #include "ping.h" |
35 #include "adhoccommands.h" | 36 #include "adhoccommands.h" |
311 JabberCallbackData *jcd; | 312 JabberCallbackData *jcd; |
312 xmlnode *query, *error, *x; | 313 xmlnode *query, *error, *x; |
313 const char *xmlns; | 314 const char *xmlns; |
314 const char *type, *id, *from; | 315 const char *type, *id, *from; |
315 JabberIqHandler *jih; | 316 JabberIqHandler *jih; |
316 | 317 |
317 query = xmlnode_get_child(packet, "query"); | 318 query = xmlnode_get_child(packet, "query"); |
318 type = xmlnode_get_attrib(packet, "type"); | 319 type = xmlnode_get_attrib(packet, "type"); |
319 from = xmlnode_get_attrib(packet, "from"); | 320 from = xmlnode_get_attrib(packet, "from"); |
320 id = xmlnode_get_attrib(packet, "id"); | 321 id = xmlnode_get_attrib(packet, "id"); |
321 | 322 |
335 if((jih = g_hash_table_lookup(iq_handlers, xmlns))) { | 336 if((jih = g_hash_table_lookup(iq_handlers, xmlns))) { |
336 jih(js, packet); | 337 jih(js, packet); |
337 return; | 338 return; |
338 } | 339 } |
339 } | 340 } |
341 | |
342 if (xmlnode_get_child_with_namespace(packet, "session", "http://www.google.com/session")) { | |
343 jabber_google_session_parse(js, packet); | |
344 return; | |
345 } | |
340 | 346 |
341 if(xmlnode_get_child_with_namespace(packet, "si", "http://jabber.org/protocol/si")) { | 347 if(xmlnode_get_child_with_namespace(packet, "si", "http://jabber.org/protocol/si")) { |
342 jabber_si_parse(js, packet); | 348 jabber_si_parse(js, packet); |
343 return; | 349 return; |
344 } | 350 } |
346 if(xmlnode_get_child_with_namespace(packet, "new-mail", "google:mail:notify")) { | 352 if(xmlnode_get_child_with_namespace(packet, "new-mail", "google:mail:notify")) { |
347 jabber_gmail_poke(js, packet); | 353 jabber_gmail_poke(js, packet); |
348 return; | 354 return; |
349 } | 355 } |
350 | 356 |
351 purple_debug_info("jabber", "jabber_iq_parse\n"); | |
352 | |
353 if(xmlnode_get_child_with_namespace(packet, "ping", "urn:xmpp:ping")) { | 357 if(xmlnode_get_child_with_namespace(packet, "ping", "urn:xmpp:ping")) { |
354 jabber_ping_parse(js, packet); | 358 jabber_ping_parse(js, packet); |
355 return; | 359 return; |
356 } | 360 } |
361 | |
362 #ifdef USE_VV | |
363 if (xmlnode_get_child_with_namespace(packet, "jingle", "urn:xmpp:tmp:jingle")) { | |
364 jabber_jingle_session_parse(js, packet); | |
365 return; | |
366 } | |
367 #endif | |
357 | 368 |
358 /* If we get here, send the default error reply mandated by XMPP-CORE */ | 369 /* If we get here, send the default error reply mandated by XMPP-CORE */ |
359 if(type && (!strcmp(type, "set") || !strcmp(type, "get"))) { | 370 if(type && (!strcmp(type, "set") || !strcmp(type, "get"))) { |
360 JabberIq *iq = jabber_iq_new(js, JABBER_IQ_ERROR); | 371 JabberIq *iq = jabber_iq_new(js, JABBER_IQ_ERROR); |
361 | 372 |
392 jabber_iq_register_handler("jabber:iq:version", jabber_iq_version_parse); | 403 jabber_iq_register_handler("jabber:iq:version", jabber_iq_version_parse); |
393 jabber_iq_register_handler("http://jabber.org/protocol/disco#info", jabber_disco_info_parse); | 404 jabber_iq_register_handler("http://jabber.org/protocol/disco#info", jabber_disco_info_parse); |
394 jabber_iq_register_handler("http://jabber.org/protocol/disco#items", jabber_disco_items_parse); | 405 jabber_iq_register_handler("http://jabber.org/protocol/disco#items", jabber_disco_items_parse); |
395 jabber_iq_register_handler("jabber:iq:register", jabber_register_parse); | 406 jabber_iq_register_handler("jabber:iq:register", jabber_register_parse); |
396 jabber_iq_register_handler("urn:xmpp:ping", urn_xmpp_ping_parse); | 407 jabber_iq_register_handler("urn:xmpp:ping", urn_xmpp_ping_parse); |
408 #ifdef USE_VV | |
409 jabber_iq_register_handler("urn:xmpp:tmp:jingle", jabber_jingle_session_parse); | |
410 #endif | |
397 } | 411 } |
398 | 412 |
399 void jabber_iq_uninit(void) | 413 void jabber_iq_uninit(void) |
400 { | 414 { |
401 g_hash_table_destroy(iq_handlers); | 415 g_hash_table_destroy(iq_handlers); |