aboutsummaryrefslogtreecommitdiff
path: root/hardinfo2
diff options
context:
space:
mode:
authorLeandro A. F. Pereira <leandro@hardinfo.org>2009-08-10 15:10:40 -0300
committerLeandro A. F. Pereira <leandro@hardinfo.org>2009-08-10 15:10:40 -0300
commit99fdf857f95bf57b77291c9e1bf23dacd243f2d9 (patch)
tree104ddf1300376c6a80262319e4895b4703e493d3 /hardinfo2
parentc2ebcaacee958216cf07569a11cdbd8ceea473b5 (diff)
Add "Accept connections" checkbox to Remote menu
Diffstat (limited to 'hardinfo2')
-rw-r--r--hardinfo2/menu.c4
-rw-r--r--hardinfo2/uidefs.h2
-rw-r--r--hardinfo2/xmlrpc-server.c14
-rw-r--r--hardinfo2/xmlrpc-server.h2
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