Publish delayed data in non-split hooks case too
authorMyhailo Danylenko <isbear@ukrpost.net>
Wed, 20 Jan 2010 20:32:11 +0200
changeset 15 06f8bb3de689
parent 14 9a4d0f04c7d3
child 16 694d32bf5058
Publish delayed data in non-split hooks case too
avatar.c
--- a/avatar.c	Wed Jan 20 19:39:43 2010 +0200
+++ b/avatar.c	Wed Jan 20 20:32:11 2010 +0200
@@ -1075,10 +1075,21 @@
 // release handlers before reconnect
 static void avatar_hh (guint32 hid, hk_arg_t *args, gpointer userdata)
 {
-#ifdef HOOK_PRE_DISCONNECT
-	if (hid == HOOK_PRE_DISCONNECT)
+#ifndef HOOK_POST_CONNECT
+	hk_arg_t *arg;
+
+	for (arg = args; arg->name; arg++) {
+		if (!strcmp (arg->name, "hook")) {
+			if (!strcmp (arg->value, "hook-pre-disconnect")) {
+#else
+	if (hid == HOOK_PRE_DISCONNECT) {
+#endif
 		avatar_free_reply_handlers ();
-	else if (hid == HOOK_POST_CONNECT && publish_delayed) {
+#ifndef HOOK_POST_CONNECT
+			} else if (publish_delayed && !strcmp (arg -> value, "hook-post-connect")) {
+#else
+	} else if (hid == HOOK_POST_CONNECT && publish_delayed) {
+#endif
 		char *tmp_data = publish_data;
 
 		scr_LogPrint (LPRINT_DEBUG, "avatar: Publishing delayed data.");
@@ -1089,17 +1100,11 @@
 		avatar_publish (publish_data, publish_len);
 
 		g_free (tmp_data);
+#ifndef HOOK_POST_CONNECT
+			}
+		}
+#endif
 	}
-#else
-	hk_arg_t *arg;
-
-	for (arg = args; arg->name; arg++) {
-		if (!strcmp (arg->name, "hook") && !strcmp (arg->value, "hook-pre-disconnect")) {
-			avatar_free_reply_handlers ();
-			return;
-		}
-	}
-#endif
 }
 
 const gchar *g_module_check_init (GModule *module)