src/protocols/msn/nexus.c

changeset 14198
c31a5108a3f4
parent 14134
fb1e20b8724b
child 14202
b90f027d5ff1
--- a/src/protocols/msn/nexus.c	Wed Aug 16 02:37:49 2006 +0000
+++ b/src/protocols/msn/nexus.c	Wed Aug 16 02:44:21 2006 +0000
@@ -293,6 +293,15 @@
 
 }
 
+/* this guards against missing hash entries */
+char *
+nexus_challenge_data_lookup(GHashTable *challenge_data, const char *key)
+{
+  char *entry;
+
+  return (entry = (char *)g_hash_table_lookup(challenge_data, key)) ?
+    entry : "(null)";
+}
 
 void
 login_connect_cb(gpointer data, GaimSslConnection *gsc,
@@ -336,16 +345,16 @@
 		"Host: %s\r\n"
 		"Connection: Keep-Alive\r\n"
 		"Cache-Control: no-cache\r\n",
-		(char *)g_hash_table_lookup(nexus->challenge_data, "lc"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "id"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "tw"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "fs"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "ru"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "lc"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "id"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "tw"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "fs"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "ru"),
 		ctint,
-		(char *)g_hash_table_lookup(nexus->challenge_data, "kpp"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "kv"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "ver"),
-		(char *)g_hash_table_lookup(nexus->challenge_data, "tpf"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "kpp"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "kv"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "ver"),
+		nexus_challenge_data_lookup(nexus->challenge_data, "tpf"),
 		nexus->login_host);
 
 	buffer = g_strdup_printf("%s,pwd=XXXXXXXX,%s\r\n", head, tail);

mercurial