# HG changeset patch # User Myhailo Danylenko # Date 1261798132 -7200 # Node ID 2aa6a333b0aff1d54ef0faa0197a9516dac249fe # Parent f43622080b3a885076ceb2c44f274b4a1899a678 Use handler object for request type indication diff -r f43622080b3a -r 2aa6a333b0af disco.c --- 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 ();