]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: Allow -N to modify the zapi domain socket
authorDonald Sharp <sharpd@cumulusnetworks.com>
Thu, 30 May 2019 22:51:00 +0000 (18:51 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 4 Jun 2019 14:37:19 +0000 (10:37 -0400)
When using -z, allow that to override the zapi domain socket
path.  If using -N add the namespace name to the path to
$frr_statedir/<namespace>/zserv.api.  If you don't specify
the -N or -z option then it is $frr_statedir/zserv.api

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
configure.ac
lib/libfrr.c

index c228ff0c91679a43f6f06961b440a26d649d9bd5..ea38dbb6ccc62216855122baccf61fdd797eb198 100755 (executable)
@@ -2203,7 +2203,7 @@ AC_MSG_RESULT([${frr_statedir}])
 AC_SUBST([frr_statedir])
 
 AC_DEFINE_UNQUOTED([LDPD_SOCKET], ["$frr_statedir/ldpd.sock"], [ldpd control socket])
-AC_DEFINE_UNQUOTED([ZEBRA_SERV_PATH], ["$frr_statedir/zserv.api"], [zebra api 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([DAEMON_VTY_DIR], ["$frr_statedir"], [daemon vty directory])
 AC_DEFINE_UNQUOTED([DAEMON_DB_DIR], ["$frr_statedir"], [daemon database directory])
index c9a1e46320142efcd32ba20fdf0457bd10f19d7c..ae33609d9ea0bc0e8a9e748e1c3238e197117b1d 100644 (file)
@@ -179,7 +179,7 @@ bool frr_zclient_addr(struct sockaddr_storage *sa, socklen_t *sa_len,
        memset(sa, 0, sizeof(*sa));
 
        if (!path)
-               path = ZEBRA_SERV_PATH;
+               path = frr_zclientpath;
 
        if (!strncmp(path, ZAPI_TCP_PATHNAME, strlen(ZAPI_TCP_PATHNAME))) {
                /* note: this functionality is disabled at bottom */
@@ -319,8 +319,6 @@ void frr_preinit(struct frr_daemon_info *daemon, int argc, char **argv)
        strlcpy(frr_protoname, di->logname, sizeof(frr_protoname));
        strlcpy(frr_protonameinst, di->logname, sizeof(frr_protonameinst));
 
-       strlcpy(frr_zclientpath, ZEBRA_SERV_PATH, sizeof(frr_zclientpath));
-
        di->cli_mode = FRR_CLI_CLASSIC;
 }
 
@@ -407,6 +405,9 @@ static int frr_opt(int opt)
                        break;
                }
                di->pathspace = optarg;
+
+               snprintf(frr_zclientpath, sizeof(frr_zclientpath),
+                        ZEBRA_SERV_PATH, "/", di->pathspace);
                break;
 #ifdef HAVE_SQLITE3
        case OPTION_DB_FILE:
@@ -512,6 +513,9 @@ int frr_getopt(int argc, char *const argv[], int *longindex)
        int opt;
        int lidx;
 
+       snprintf(frr_zclientpath, sizeof(frr_zclientpath),
+                ZEBRA_SERV_PATH, "", "");
+
        comb_next_lo->name = NULL;
 
        do {