diff options
| -rw-r--r-- | protocols/purple/purple.c | 11 | 
1 files changed, 11 insertions, 0 deletions
| diff --git a/protocols/purple/purple.c b/protocols/purple/purple.c index 10864e9e..99f8865b 100644 --- a/protocols/purple/purple.c +++ b/protocols/purple/purple.c @@ -132,6 +132,7 @@ static void purple_init(account_t *acc)  		pool = purple_certificate_find_pool("x509", "tls_peers");  		dir = purple_certificate_pool_mkpath(pool, NULL);  		purple_build_dir(dir, 0700); +		g_free(dir);  		dir_fixed = TRUE;  	} @@ -360,6 +361,10 @@ static void purple_logout(struct im_connection *ic)  		return;  	} +	while (ic->groupchats) { +		imcb_chat_free(ic->groupchats->data); +	} +  	purple_account_set_enabled(pd->account, "BitlBee", FALSE);  	purple_connections = g_slist_remove(purple_connections, ic);  	purple_accounts_remove(pd->account); @@ -713,10 +718,16 @@ struct groupchat *purple_chat_join(struct im_connection *ic, const char *room, c  		} else if (strcmp(pce->identifier, "passwd") == 0) {  			g_hash_table_replace(chat_hash, "passwd", g_strdup(password));  		} + +		g_free(pce);  	} +	g_list_free(info); +  	serv_join_chat(purple_account_get_connection(pd->account), chat_hash); +	g_hash_table_destroy(chat_hash); +  	return imcb_chat_new(ic, room);  } | 
