--- a/pep.c Sun Jan 17 12:36:52 2010 +0200
+++ b/pep.c Tue Jan 19 20:18:36 2010 +0200
@@ -161,6 +161,12 @@
// release handlers before reconnect
static void pep_hh (guint32 hid, hk_arg_t *args, gpointer userdata)
{
+#ifdef HOOK_POST_CONNECT
+ if (hid == HOOK_POST_CONNECT)
+ pep_register_handlers ();
+ else if (hid == HOOK_PRE_DISCONNECT)
+ pep_unregister_handlers ();
+#else
hk_arg_t *arg;
for (arg = args; arg->name; ++arg) {
@@ -172,6 +178,7 @@
return;
}
}
+#endif
}
const gchar *g_module_check_init (GModule *module)
@@ -181,7 +188,11 @@
pep_iq_handler = lm_message_handler_new (pep_iq_pubsub_handler, NULL, NULL);
// register hook handler
+#ifdef HOOK_POST_CONNECT
+ hk_add_handler (pep_hh, HOOK_POST_CONNECT | HOOK_PRE_DISCONNET, NULL);
+#else
hk_add_handler (pep_hh, HOOK_INTERNAL, NULL);
+#endif
// register handlers to connection
pep_register_handlers ();