diff options
| -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 | 
