Mercurial > pidgin.yaz
diff libpurple/protocols/jabber/jabber.c @ 27088:d31af94a715d
Use the jabber-sending-xmlnode signal to send all XMPP stanzas.
Allows plugins to send stanzas instead of stringifying+send_raw; allows
other plugins to see the sending stanzas. This may be a little hacky; I'm
on the fence.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Wed, 03 Jun 2009 06:45:25 +0000 |
parents | 60cb86295f08 |
children | 335d737c396e |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/jabber.c Wed Jun 03 06:03:22 2009 +0000 +++ b/libpurple/protocols/jabber/jabber.c Wed Jun 03 06:45:25 2009 +0000 @@ -449,22 +449,25 @@ return len; } -void jabber_send(JabberStream *js, xmlnode *packet) +void jabber_send_signal_cb(PurpleConnection *pc, xmlnode **packet, + gpointer unused) { char *txt; int len; - purple_signal_emit(jabber_plugin, "jabber-sending-xmlnode", js->gc, &packet); - - /* if we get NULL back, we're done processing */ - if(NULL == packet) + if (NULL == packet) return; - txt = xmlnode_to_str(packet, &len); - jabber_send_raw(js, txt, len); + txt = xmlnode_to_str(*packet, &len); + jabber_send_raw(purple_connection_get_protocol_data(pc), txt, len); g_free(txt); } +void jabber_send(JabberStream *js, xmlnode *packet) +{ + purple_signal_emit(jabber_plugin, "jabber-sending-xmlnode", js->gc, &packet); +} + static gboolean jabber_keepalive_timeout(PurpleConnection *gc) { JabberStream *js = gc->proto_data;