eion/purple-hangouts

Fix for crashes when using the group-typing plugin on a reconnected account
--- a/hangouts_connection.c Thu Mar 29 10:37:00 2018 +1300
+++ b/hangouts_connection.c Thu Apr 19 17:18:50 2018 +1200
@@ -267,7 +267,10 @@
hash = g_checksum_new(G_CHECKSUM_SHA1);
g_checksum_update(hash, (guchar *) mstime_str, strlen(mstime_str));
g_checksum_update(hash, (guchar *) " ", 1);
- g_checksum_update(hash, (guchar *) sapisid_cookie, strlen(sapisid_cookie));
+ if (sapisid_cookie && *sapisid_cookie) {
+ // Should we just bail out if we dont have the cookie?
+ g_checksum_update(hash, (guchar *) sapisid_cookie, strlen(sapisid_cookie));
+ }
g_checksum_update(hash, (guchar *) " ", 1);
g_checksum_update(hash, (guchar *) HANGOUTS_PBLITE_XORIGIN_URL, strlen(HANGOUTS_PBLITE_XORIGIN_URL));
sha1 = g_checksum_get_string(hash);
--- a/libhangouts.c Thu Mar 29 10:37:00 2018 +1300
+++ b/libhangouts.c Thu Apr 19 17:18:50 2018 +1200
@@ -395,7 +395,7 @@
purple_signal_connect(purple_blist_get_handle(), "blist-node-aliased", account, PURPLE_CALLBACK(hangouts_blist_node_aliased), NULL);
purple_signal_connect(purple_conversations_get_handle(), "conversation-updated", account, PURPLE_CALLBACK(hangouts_mark_conversation_seen), NULL);
if (!chat_conversation_typing_signal) {
- chat_conversation_typing_signal = purple_signal_connect(purple_conversations_get_handle(), "chat-conversation-typing", purple_connection_get_protocol(pc), PURPLE_CALLBACK(hangouts_conv_send_typing), ha);
+ chat_conversation_typing_signal = purple_signal_connect(purple_conversations_get_handle(), "chat-conversation-typing", purple_connection_get_protocol(pc), PURPLE_CALLBACK(hangouts_conv_send_typing), NULL);
}
#if !PURPLE_VERSION_CHECK(3, 0, 0)