diff options
author | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-08-10 15:10:40 -0300 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2009-08-10 15:10:40 -0300 |
commit | 99fdf857f95bf57b77291c9e1bf23dacd243f2d9 (patch) | |
tree | 104ddf1300376c6a80262319e4895b4703e493d3 /hardinfo2 | |
parent | c2ebcaacee958216cf07569a11cdbd8ceea473b5 (diff) |
Add "Accept connections" checkbox to Remote menu
Diffstat (limited to 'hardinfo2')
-rw-r--r-- | hardinfo2/menu.c | 4 | ||||
-rw-r--r-- | hardinfo2/uidefs.h | 2 | ||||
-rw-r--r-- | hardinfo2/xmlrpc-server.c | 14 | ||||
-rw-r--r-- | hardinfo2/xmlrpc-server.h | 2 |
4 files changed, 20 insertions, 2 deletions
diff --git a/hardinfo2/menu.c b/hardinfo2/menu.c index dc197129..bc938994 100644 --- a/hardinfo2/menu.c +++ b/hardinfo2/menu.c @@ -123,6 +123,10 @@ static GtkToggleActionEntry toggle_entries[] = { "_Toolbar", NULL, NULL, G_CALLBACK(cb_toolbar)}, + {"ActAsServerAction", NULL, + "_Accept connections", NULL, + NULL, + G_CALLBACK(cb_act_as_server) } }; /* Implement a handler for GtkUIManager's "add_widget" signal. The UI manager diff --git a/hardinfo2/uidefs.h b/hardinfo2/uidefs.h index 10e8e4ba..cc8d057b 100644 --- a/hardinfo2/uidefs.h +++ b/hardinfo2/uidefs.h @@ -15,6 +15,8 @@ " <menuitem name=\"ConnectTo\" action=\"ConnectToAction\" />" \ " <menuitem name=\"Manage\" action=\"ManageAction\" />" \ " <separator/>" \ +" <menuitem name=\"ActAsServer\" action=\"ActAsServerAction\" />" \ +" <separator/>" \ " <menuitem name=\"LocalComputer\" action=\"LocalComputerAction\" />" \ " </menu>" diff --git a/hardinfo2/xmlrpc-server.c b/hardinfo2/xmlrpc-server.c index 7ec90ab9..ebe35e08 100644 --- a/hardinfo2/xmlrpc-server.c +++ b/hardinfo2/xmlrpc-server.c @@ -571,13 +571,18 @@ void xmlrpc_server_init(void) { #ifdef HAS_LIBSOUP if (!loop) { + DEBUG("creating main loop"); loop = g_main_loop_new(NULL, FALSE); + } else { + DEBUG("using main loop instance %p", loop); } if (!handlers) { int i; handlers = g_hash_table_new(g_str_hash, g_str_equal); + DEBUG("registering handlers"); + for (i = 0; handler_table[i].method_name; i++) { g_hash_table_insert(handlers, handler_table[i].method_name, @@ -700,12 +705,17 @@ static void icon_server_callback(SoupServer * server, } #endif /* HAS_LIBSOUP */ -void xmlrpc_server_start(void) +void xmlrpc_server_start(GMainLoop *main_loop) { #ifdef HAS_LIBSOUP SoupServer *server; + if (main_loop) { + loop = main_loop; + } + if (!loop || !handlers) { + DEBUG("initializing server"); xmlrpc_server_init(); } @@ -714,8 +724,10 @@ void xmlrpc_server_start(void) g_error("Cannot create XML-RPC server. Aborting"); } + DEBUG("adding soup handlers for /xmlrpc"); soup_server_add_handler(server, "/xmlrpc", xmlrpc_server_callback, NULL, NULL); + DEBUG("adding soup handlers for /icon/"); soup_server_add_handler(server, "/icon/", icon_server_callback, NULL, NULL); diff --git a/hardinfo2/xmlrpc-server.h b/hardinfo2/xmlrpc-server.h index 5fbbc47c..2c47dd1c 100644 --- a/hardinfo2/xmlrpc-server.h +++ b/hardinfo2/xmlrpc-server.h @@ -18,7 +18,7 @@ #ifndef __XMLRPC_SERVER_H__ #define __XMLRPC_SERVER_H__ -void xmlrpc_server_start(void); +void xmlrpc_server_start(GMainLoop *main_loop); void xmlrpc_server_init(void); #endif /* __XMLRPC_SERVER_H__ */
\ No newline at end of file |