LP#1888406: Teach srfsh how to use the actual router name user/miker/lp-1888406-srfsh-router-name
authorMike Rylander <mrylander@gmail.com>
Tue, 21 Jul 2020 14:26:20 +0000 (10:26 -0400)
committerMike Rylander <mrylander@gmail.com>
Fri, 9 Oct 2020 21:53:47 +0000 (17:53 -0400)
OpenSRF routers have a default XMPP user name of "router", but that
can be changed. Unfortunately, srfsh doesn't know how to use the router
name from the config when sending router-specific commands such as
introspection calls. This commit allows that.

Signed-off-by: Mike Rylander <mrylander@gmail.com>
src/srfsh/srfsh.c

index 1887bac..2862610 100644 (file)
@@ -956,10 +956,12 @@ static int router_query_servers( const char* router_server ) {
        if( ! router_server || strlen(router_server) == 0 ) 
                return 0;
 
-       const static char router_text[] = "router@%s/router";
-       size_t len = sizeof( router_text ) + strlen( router_server ) + 1;
+       char* router_name = osrfConfigGetValue(NULL, "/router_name");
+       const static char router_text[] = "%s@%s/router";
+       size_t len = sizeof( router_text ) + strlen( router_name ) + strlen( router_server ) + 1;
        char rbuf[len];
-       snprintf(rbuf, sizeof(rbuf), router_text, router_server );
+       snprintf(rbuf, sizeof(rbuf), router_text, router_name, router_server );
+       free(router_name);
                
        transport_message* send = 
                message_init( "servers", NULL, NULL, rbuf, NULL );