equal
deleted
inserted
replaced
34 |
34 |
35 static guint disco_cid = 0; |
35 static guint disco_cid = 0; |
36 static LmMessageHandler *disco_info_reply_handler = NULL; |
36 static LmMessageHandler *disco_info_reply_handler = NULL; |
37 static LmMessageHandler *disco_items_reply_handler = NULL; |
37 static LmMessageHandler *disco_items_reply_handler = NULL; |
38 |
38 |
39 static LmHandlerResult disco_handler (LmMessage *message, gboolean info_request) |
39 static LmHandlerResult disco_handler (LmMessageHandler *handler, LmConnection *connection, LmMessage *message, gpointer udata) |
40 { |
40 { |
|
41 gboolean info_request = handler == disco_info_reply_handler ? TRUE : FALSE; |
|
42 |
41 switch (lm_message_get_sub_type (message)) { |
43 switch (lm_message_get_sub_type (message)) { |
42 case LM_MESSAGE_SUB_TYPE_RESULT: |
44 case LM_MESSAGE_SUB_TYPE_RESULT: |
43 |
45 |
44 { |
46 { |
45 LmMessageNode *node = lm_message_get_node (message); |
47 LmMessageNode *node = lm_message_get_node (message); |
156 } |
158 } |
157 |
159 |
158 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
160 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
159 } |
161 } |
160 |
162 |
161 static LmHandlerResult disco_info_handler (LmMessageHandler *handler, LmConnection *connection, LmMessage *message, gpointer udata) |
|
162 { |
|
163 return disco_handler (message, TRUE); |
|
164 } |
|
165 |
|
166 static LmHandlerResult disco_items_handler (LmMessageHandler *handler, LmConnection *connection, LmMessage *message, gpointer udata) |
|
167 { |
|
168 return disco_handler (message, FALSE); |
|
169 } |
|
170 |
|
171 static void do_disco (char *arg) |
163 static void do_disco (char *arg) |
172 { |
164 { |
173 char **args = split_arg (arg, 3, 0); |
165 char **args = split_arg (arg, 3, 0); |
174 int info = -1; |
166 int info = -1; |
175 |
167 |
238 } |
230 } |
239 |
231 |
240 const gchar *g_module_check_init(GModule *module) |
232 const gchar *g_module_check_init(GModule *module) |
241 { |
233 { |
242 // create handlers |
234 // create handlers |
243 disco_info_reply_handler = lm_message_handler_new (disco_info_handler, NULL, NULL); |
235 disco_info_reply_handler = lm_message_handler_new (disco_handler, NULL, NULL); |
244 disco_items_reply_handler = lm_message_handler_new (disco_items_handler, NULL, NULL); |
236 disco_items_reply_handler = lm_message_handler_new (disco_handler, NULL, NULL); |
245 |
237 |
246 // completion |
238 // completion |
247 disco_cid = compl_new_category (); |
239 disco_cid = compl_new_category (); |
248 if (disco_cid) { |
240 if (disco_cid) { |
249 compl_add_category_word (disco_cid, "info"); |
241 compl_add_category_word (disco_cid, "info"); |