From 04a927cb733e2c47424569550a2faeb108094636 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Tue, 8 Jun 2010 00:04:58 +0100 Subject: Fixing some memory leakage. --- protocols/jabber/jabber.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'protocols/jabber/jabber.c') diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 86320ada..8bb44691 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -285,6 +285,8 @@ static void jabber_logout( struct im_connection *ic ) if( jd->node_cache ) g_hash_table_destroy( jd->node_cache ); + jabber_buddy_remove_all( ic ); + xt_free( jd->xt ); g_free( jd->away_message ); -- cgit v1.2.3 From 4eef27179a98cc1dd478ee9ccd05f30e36ce43bc Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Wed, 23 Jun 2010 01:13:46 +0100 Subject: Added user_agent setting to Jabber accounts so people can get around ridiculous user agent restrictions on certain Jabber servers. Obviously this is pretty simple to detect and break, but it works at least with Openfire. --- protocols/jabber/jabber.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'protocols/jabber/jabber.c') diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 8bb44691..48b8ac43 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -79,6 +79,8 @@ static void jabber_init( account_t *acc ) s = set_add( &acc->set, "tls", "try", set_eval_tls, acc ); s->flags |= ACC_SET_OFFLINE_ONLY; + s = set_add( &acc->set, "user_agent", "BitlBee", NULL, acc ); + s = set_add( &acc->set, "xmlconsole", "false", set_eval_bool, acc ); s->flags |= ACC_SET_OFFLINE_ONLY; -- cgit v1.2.3 From 38ff846b14f1d1f80983a0818b9bcf60581a2a34 Mon Sep 17 00:00:00 2001 From: Wilmer van der Gaast Date: Thu, 24 Jun 2010 02:06:49 +0100 Subject: Fixed an access-after-free() bug in the Jabber keepalive + cache cleanup code. --- protocols/jabber/jabber.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'protocols/jabber/jabber.c') diff --git a/protocols/jabber/jabber.c b/protocols/jabber/jabber.c index 48b8ac43..75351d0d 100644 --- a/protocols/jabber/jabber.c +++ b/protocols/jabber/jabber.c @@ -473,7 +473,8 @@ static void jabber_chat_invite_( struct groupchat *c, char *who, char *msg ) static void jabber_keepalive( struct im_connection *ic ) { /* Just any whitespace character is enough as a keepalive for XMPP sessions. */ - jabber_write( ic, "\n", 1 ); + if( !jabber_write( ic, "\n", 1 ) ) + return; /* This runs the garbage collection every minute, which means every packet is in the cache for about a minute (which should be enough AFAIK). */ -- cgit v1.2.3