diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-05-03 12:24:48 -0300 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-05-03 12:24:48 -0300 |
commit | efbc771b490d50279b3b9cacfd5f4e9ca8621a68 (patch) | |
tree | a28b95408b25c236506b5b4362cdab436591d549 /hardinfo2/xmlrpc-server.c | |
parent | 6553dc00fe6d10baaa3b3faaddedace625f90c5a (diff) |
Change module.getModuleList(), so it also sends the module's icon filename. Stability fixes to the remote feature.
Diffstat (limited to 'hardinfo2/xmlrpc-server.c')
-rw-r--r-- | hardinfo2/xmlrpc-server.c | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/hardinfo2/xmlrpc-server.c b/hardinfo2/xmlrpc-server.c index 5278765c..8e7f302f 100644 --- a/hardinfo2/xmlrpc-server.c +++ b/hardinfo2/xmlrpc-server.c @@ -145,10 +145,26 @@ static void method_get_module_list(SoupMessage * msg, GValueArray * params) for (modules = modules_get_list(); modules; modules = modules->next) { ShellModule *module = (ShellModule *) modules->data; + gchar *icon_file, *tmp; + GValueArray *tuple; + + tuple = soup_value_array_new(); + + tmp = g_path_get_basename(g_module_name(module->dll)); + if ((icon_file = g_strrstr(tmp, G_MODULE_SUFFIX))) { + *icon_file = '\0'; + icon_file = g_strconcat(tmp, "png", NULL); + } else { + icon_file = ""; + } - /* gchar *name = g_path_get_basename(g_module_name(module->dll)); */ + soup_value_array_append(tuple, G_TYPE_STRING, module->name); + soup_value_array_append(tuple, G_TYPE_STRING, icon_file); + + soup_value_array_append(out, G_TYPE_VALUE_ARRAY, tuple); - soup_value_array_append(out, G_TYPE_STRING, module->name); + g_value_array_free(tuple); + g_free(tmp); } soup_xmlrpc_set_response(msg, G_TYPE_VALUE_ARRAY, out); @@ -300,7 +316,6 @@ static void method_entry_reload(SoupMessage * msg, GValueArray * params) MethodParameter method_params[] = { { G_TYPE_STRING, &module_name }, { G_TYPE_INT, &entry_number }, - { G_TYPE_STRING, &field_name }, }; if (!validate_parameters(msg, params, method_params, G_N_ELEMENTS(method_params))) { @@ -403,11 +418,10 @@ static void method_entry_function(SoupMessage * msg, GValueArray * params) } if (!answer) { - answer = g_strdup(""); + answer = ""; } soup_xmlrpc_set_response(msg, G_TYPE_STRING, answer); - g_free(answer); } @@ -469,6 +483,8 @@ static void method_get_about_info(SoupMessage * msg, GValueArray * params) return; } + DEBUG("module name = %s", module_name); + for (modules = modules_get_list(); modules; modules = modules->next) { module = (ShellModule *) modules->data; |