summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Markmann <tfar@soc.pidgin.im>2008-07-15 15:38:15 +0000
committerTobias Markmann <tfar@soc.pidgin.im>2008-07-15 15:38:15 +0000
commit6fd731b0a9bee7e11f314819c11f9d741a2aeb1f (patch)
tree97d037d28b47e73e1d7bf11415e5c5a6023ace85
parentcd290badc9393ee6f561640022589e95e4244521 (diff)
downloadpidgin-6fd731b0a9bee7e11f314819c11f9d741a2aeb1f.tar.gz
* implemented jabber_caps_broadcast_change() and finished jabber_ipc_add_feature() IPC function
-rw-r--r--libpurple/protocols/jabber/caps.c13
-rw-r--r--libpurple/protocols/jabber/caps.h5
-rw-r--r--libpurple/protocols/jabber/jabber.c1
3 files changed, 19 insertions, 0 deletions
diff --git a/libpurple/protocols/jabber/caps.c b/libpurple/protocols/jabber/caps.c
index 1633ef6965..7f6515b409 100644
--- a/libpurple/protocols/jabber/caps.c
+++ b/libpurple/protocols/jabber/caps.c
@@ -845,3 +845,16 @@ const gchar* jabber_caps_get_own_hash() {
return caps_hash;
}
+void jabber_caps_broadcast_change() {
+ GList *active_accounts = purple_accounts_get_all_active();
+ for (active_accounts = purple_accounts_get_all_active(); active_accounts; active_accounts = active_accounts->next) {
+ PurpleAccount *account = active_accounts->data;
+ if (!strcmp(account->protocol_id, "jabber")) {
+ PurpleConnection *conn = account->gc;
+ JabberStream *js = conn->proto_data;
+ xmlnode *presence = jabber_presence_create_js(js, JABBER_BUDDY_STATE_UNKNOWN, 0, 0);
+ jabber_send(js, presence);
+ }
+ }
+}
+
diff --git a/libpurple/protocols/jabber/caps.h b/libpurple/protocols/jabber/caps.h
index f8b0792f12..2fb61d3583 100644
--- a/libpurple/protocols/jabber/caps.h
+++ b/libpurple/protocols/jabber/caps.h
@@ -88,4 +88,9 @@ void jabber_caps_calculate_own_hash();
**/
const gchar* jabber_caps_get_own_hash();
+/**
+ *
+ */
+void jabber_caps_broadcast_change();
+
#endif /* _PURPLE_JABBER_CAPS_H_ */
diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c
index 41c932726f..06849893d6 100644
--- a/libpurple/protocols/jabber/jabber.c
+++ b/libpurple/protocols/jabber/jabber.c
@@ -2480,6 +2480,7 @@ jabber_ipc_add_feature(gchar *feature)
jabber_add_feature(feature, 0);
// send presence with new caps info for all connected accounts
+ jabber_caps_broadcast_change();
}
void