From: Donald Sharp Date: Thu, 30 May 2019 23:10:35 +0000 (-0400) Subject: bfdd: Allow -N to influence BFDD_CONTROL_SOCKET X-Git-Tag: base_7.2~263^2~4 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=89277ebf76312c53c71194d6ea8dd65f6e0fa11a;p=matthieu%2Ffrr.git bfdd: Allow -N to influence BFDD_CONTROL_SOCKET When selecting to run bfdd with -N allow the namespace passed in to be added to the $frr_statedir//bfdd.sock If --bfdctl is passed in that will override the -N option. If neither --bfdctl or -N is passed in then the default of $frr_statedir/bfdd.sock is used. Signed-off-by: Donald Sharp --- diff --git a/bfdd/bfdd.c b/bfdd/bfdd.c index 218f0883c5..69033ba431 100644 --- a/bfdd/bfdd.c +++ b/bfdd/bfdd.c @@ -158,7 +158,8 @@ static void bg_init(void) int main(int argc, char *argv[]) { - const char *ctl_path = BFDD_CONTROL_SOCKET; + char ctl_path[512]; + bool ctlsockused = false; int opt; /* Initialize system sockets. */ @@ -168,6 +169,8 @@ int main(int argc, char *argv[]) frr_opt_add("", longopts, " --bfdctl Specify bfdd control socket\n"); + snprintf(ctl_path, sizeof(ctl_path), BFDD_CONTROL_SOCKET, + "", ""); while (true) { opt = frr_getopt(argc, argv, NULL); if (opt == EOF) @@ -175,7 +178,8 @@ int main(int argc, char *argv[]) switch (opt) { case OPTION_CTLSOCK: - ctl_path = optarg; + strlcpy(ctl_path, optarg, sizeof(ctl_path)); + ctlsockused = true; break; default: @@ -184,6 +188,10 @@ int main(int argc, char *argv[]) } } + if (bfdd_di.pathspace && !ctlsockused) + snprintf(ctl_path, sizeof(ctl_path), BFDD_CONTROL_SOCKET, + "/", bfdd_di.pathspace); + #if 0 /* TODO add support for JSON configuration files. */ parse_config(conf); #endif diff --git a/configure.ac b/configure.ac index ea38dbb6cc..5d17071fb3 100755 --- a/configure.ac +++ b/configure.ac @@ -2204,7 +2204,7 @@ AC_SUBST([frr_statedir]) AC_DEFINE_UNQUOTED([LDPD_SOCKET], ["$frr_statedir/ldpd.sock"], [ldpd control socket]) AC_DEFINE_UNQUOTED([ZEBRA_SERV_PATH], ["$frr_statedir%s%s/zserv.api"], [zebra api socket]) -AC_DEFINE_UNQUOTED([BFDD_CONTROL_SOCKET], ["$frr_statedir/bfdd.sock"], [bfdd control socket]) +AC_DEFINE_UNQUOTED([BFDD_CONTROL_SOCKET], ["$frr_statedir%s%s/bfdd.sock"], [bfdd control socket]) AC_DEFINE_UNQUOTED([DAEMON_VTY_DIR], ["$frr_statedir"], [daemon vty directory]) AC_DEFINE_UNQUOTED([DAEMON_DB_DIR], ["$frr_statedir"], [daemon database directory])