| 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 |