diff -r 7d4c5337267c -r cd99de6aeb13 pep.c --- 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 ();