mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-04-24 13:05:52 +00:00
monitor.socket config option added to allow multiple servald
instances on the same machine without conflicting abstract namespace unix domain sockets for monitor interface.
This commit is contained in:
parent
22ebdbc1ae
commit
01712ab67e
@ -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]);
|
||||
|
14
monitor.c
14
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]);
|
||||
|
2
serval.h
2
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"
|
||||
|
@ -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)"
|
||||
|
Loading…
x
Reference in New Issue
Block a user