Use binary hook ids if present
authorMyhailo Danylenko <isbear@ukrpost.net>
Tue, 19 Jan 2010 20:18:36 +0200
changeset 13 cd99de6aeb13
parent 12 7d4c5337267c
child 14 7981ff83d9b8
Use binary hook ids if present
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 ();