]> git.puffer.fish Git - mirror/frr.git/commitdiff
bfdd: Allow -N to influence BFDD_CONTROL_SOCKET
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 30 May 2019 23:10:35 +0000 (19:10 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 4 Jun 2019 14:37:19 +0000 (10:37 -0400)
When selecting to run bfdd with -N allow the namespace passed
in to be added to the $frr_statedir/<namespace name>/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 <sharpd@cumulusnetworks.com>
bfdd/bfdd.c
configure.ac

index 218f0883c5fbd6c32e8d725a468bfdbaa2a77d89..69033ba4319531d50fc9dc93fdec64535dc859fe 100644 (file)
@@ -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
index ea38dbb6ccc62216855122baccf61fdd797eb198..5d17071fb320ad25df3a48fac02390dd02f95c09 100755 (executable)
@@ -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])