--- a/disco.c Sat Dec 26 05:26:00 2009 +0200
+++ b/disco.c Sat Dec 26 05:28:52 2009 +0200
@@ -36,8 +36,10 @@
static LmMessageHandler *disco_info_reply_handler = NULL;
static LmMessageHandler *disco_items_reply_handler = NULL;
-static LmHandlerResult disco_handler (LmMessage *message, gboolean info_request)
+static LmHandlerResult disco_handler (LmMessageHandler *handler, LmConnection *connection, LmMessage *message, gpointer udata)
{
+ gboolean info_request = handler == disco_info_reply_handler ? TRUE : FALSE;
+
switch (lm_message_get_sub_type (message)) {
case LM_MESSAGE_SUB_TYPE_RESULT:
@@ -158,16 +160,6 @@
return LM_HANDLER_RESULT_REMOVE_MESSAGE;
}
-static LmHandlerResult disco_info_handler (LmMessageHandler *handler, LmConnection *connection, LmMessage *message, gpointer udata)
-{
- return disco_handler (message, TRUE);
-}
-
-static LmHandlerResult disco_items_handler (LmMessageHandler *handler, LmConnection *connection, LmMessage *message, gpointer udata)
-{
- return disco_handler (message, FALSE);
-}
-
static void do_disco (char *arg)
{
char **args = split_arg (arg, 3, 0);
@@ -240,8 +232,8 @@
const gchar *g_module_check_init(GModule *module)
{
// create handlers
- disco_info_reply_handler = lm_message_handler_new (disco_info_handler, NULL, NULL);
- disco_items_reply_handler = lm_message_handler_new (disco_items_handler, NULL, NULL);
+ disco_info_reply_handler = lm_message_handler_new (disco_handler, NULL, NULL);
+ disco_items_reply_handler = lm_message_handler_new (disco_handler, NULL, NULL);
// completion
disco_cid = compl_new_category ();