comparison libpurple/protocols/jabber/presence.c @ 26952:92565c8e1e3a

Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
author Paul Aurich <paul@darkrain42.org>
date Tue, 12 May 2009 05:49:34 +0000
parents e7819fa37224
children c9ac5cc1e46c
comparison
equal deleted inserted replaced
26951:329f5a43b68a 26952:92565c8e1e3a
444 g_free(userdata); 444 g_free(userdata);
445 } 445 }
446 446
447 void jabber_presence_parse(JabberStream *js, xmlnode *packet) 447 void jabber_presence_parse(JabberStream *js, xmlnode *packet)
448 { 448 {
449 const char *from = xmlnode_get_attrib(packet, "from"); 449 const char *from;
450 const char *type = xmlnode_get_attrib(packet, "type"); 450 const char *type;
451 const char *real_jid = NULL; 451 const char *real_jid = NULL;
452 const char *affiliation = NULL; 452 const char *affiliation = NULL;
453 const char *role = NULL; 453 const char *role = NULL;
454 char *status = NULL; 454 char *status = NULL;
455 int priority = 0; 455 int priority = 0;
467 gboolean muc = FALSE; 467 gboolean muc = FALSE;
468 char *avatar_hash = NULL; 468 char *avatar_hash = NULL;
469 xmlnode *caps = NULL; 469 xmlnode *caps = NULL;
470 int idle = 0; 470 int idle = 0;
471 gchar *nickname = NULL; 471 gchar *nickname = NULL;
472 gboolean signal_return;
473
474 from = xmlnode_get_attrib(packet, "from");
475 type = xmlnode_get_attrib(packet, "type");
472 476
473 if(!(jb = jabber_buddy_find(js, from, TRUE))) 477 if(!(jb = jabber_buddy_find(js, from, TRUE)))
478 return;
479
480 signal_return = GPOINTER_TO_INT(purple_signal_emit_return_1(jabber_plugin,
481 "jabber-receiving-presence", js->gc, type, from, packet));
482 if (signal_return)
474 return; 483 return;
475 484
476 if(!(jid = jabber_id_new(from))) 485 if(!(jid = jabber_id_new(from)))
477 return; 486 return;
478 487