diff --git a/monitor-cli.c b/monitor-cli.c index 23cc9c77..739c5d0f 100644 --- a/monitor-cli.c +++ b/monitor-cli.c @@ -77,7 +77,8 @@ int app_monitor_cli(int argc, const char *const *argv, struct command_line_optio memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; addr.sun_path[0]=0; - snprintf(&addr.sun_path[1],100,"org.servalproject.servald.monitor.socket"); + snprintf(&addr.sun_path[1],100, + confValueGet("monitor.socket",DEFAULT_MONITOR_SOCKET_NAME)); int len = 1+strlen(&addr.sun_path[1]) + sizeof(addr.sun_family); char *p=(char *)&addr; printf("last char='%c' %02x\n",p[len-1],p[len-1]); diff --git a/monitor.c b/monitor.c index 8ba7c033..a6db2bf1 100644 --- a/monitor.c +++ b/monitor.c @@ -84,14 +84,19 @@ int monitor_setup_sockets() } #ifdef linux - /* Use abstract namespace as Android has no writable FS which supports sockets */ + /* Use abstract namespace as Android has no writable FS which supports sockets. + Abstract namespace is just plain better, anyway, as no dead files end up + hanging around. */ name.sun_path[0]=0; /* XXX: 104 comes from OSX sys/un.h - no #define (note Linux has UNIX_PATH_MAX and it's 108(!)) */ - snprintf(&name.sun_path[1],104-2,"org.servalproject.servald.monitor.socket"); + snprintf(&name.sun_path[1],104-2, + confValueGet("monitor.socket",DEFAULT_MONITOR_SOCKET_NAME)); /* Doesn't include trailing nul */ len = 1+strlen(&name.sun_path[1]) + sizeof(name.sun_family); #else - snprintf(name.sun_path,104-1,"%s/org.servalproject.servald.monitor.socket",serval_instancepath()); + snprintf(name.sun_path,104-1,"%s/", + serval_instancepath(), + confValueGet("monitor.socket",DEFAULT_MONITOR_SOCKET_NAME)); unlink(name.sun_path); /* Includes trailing nul */ len = 1+strlen(name.sun_path) + sizeof(name.sun_family); @@ -723,7 +728,8 @@ int server_probe(int *pid) memset(&addr, 0, sizeof(addr)); addr.sun_family = AF_UNIX; addr.sun_path[0]=0; - snprintf(&addr.sun_path[1],100,"org.servalproject.servald.monitor.socket"); + snprintf(&addr.sun_path[1],100, + confValueGet("monitor.socket",DEFAULT_MONITOR_SOCKET_NAME)); int len = 1+strlen(&addr.sun_path[1]) + sizeof(addr.sun_family); char *p=(char *)&addr; if (0) DEBUGF("last char='%c' %02x\n",p[len-1],p[len-1]); diff --git a/serval.h b/serval.h index be3e23aa..51b34c5d 100755 --- a/serval.h +++ b/serval.h @@ -1530,3 +1530,5 @@ extern int sigPipeFlag; extern int sigIoFlag; void sigPipeHandler(int signal); void sigIoHandler(int signal); + +#define DEFAULT_MONITOR_SOCKET_NAME "org.servalproject.servald.monitor.socket" diff --git a/tests/dnaprotocol b/tests/dnaprotocol index eef8f362..7cf4bf29 100755 --- a/tests/dnaprotocol +++ b/tests/dnaprotocol @@ -38,6 +38,7 @@ setup_servald_instance() { set_instance A touch "$SERVALINSTANCE_PATH/dummynet" executeOk_servald config set interfaces "+>dummynet" + executeOk_servald config set monitor.socket "org.servalproject.servald.monitor.socket.A" executeOk_servald keyring add assert [ -e "$SERVALINSTANCE_PATH/serval.keyring" ] executeOk_servald keyring list @@ -46,10 +47,13 @@ setup_servald_instance() { assert --message='main identity known' [ -n "$sid" ] executeOk_servald set did $sid 5550001 "Agent Smith" start_servald_server A + executeOk_servald status + tfw_cat --stdout INSTANCEPATH_A=$SERVALINSTANCE_PATH set_instance B executeOk_servald config set interfaces "+>$INSTANCEPATH_A/dummynet" + executeOk_servald config set monitor.socket "org.servalproject.servald.monitor.socket.B" executeOk_servald keyring add assert [ -e "$SERVALINSTANCE_PATH/serval.keyring" ] executeOk_servald keyring list @@ -57,7 +61,10 @@ setup_servald_instance() { sid=$(replayStdout | sed -ne "1s/^\($rexp_sid\):.*\$/\1/p") assert --message='main identity known' [ -n "$sid" ] executeOk_servald set did $sid 5552662 "Neo" + echo "# A/B Instance Paths: $SERVALINSTANCE_PATH $INSTANCEPATH_A" + tfw_cat --stdout start_servald_server B + executeOk_servald status } doc_DNAWildcardSearchFindsSelf="DNA lookup of wildcard finds self (star method)"