--- 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)