From: Donald Sharp Date: Thu, 30 May 2019 22:51:00 +0000 (-0400) Subject: lib: Allow -N to modify the zapi domain socket X-Git-Tag: base_7.2~263^2~5 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=4e99f309329a7971f2568e00f5193a81967323a4;p=matthieu%2Ffrr.git lib: Allow -N to modify the zapi domain socket 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//zserv.api. If you don't specify the -N or -z option then it is $frr_statedir/zserv.api Signed-off-by: Donald Sharp --- diff --git a/configure.ac b/configure.ac index c228ff0c91..ea38dbb6cc 100755 --- a/configure.ac +++ b/configure.ac @@ -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]) diff --git a/lib/libfrr.c b/lib/libfrr.c index c9a1e46320..ae33609d9e 100644 --- a/lib/libfrr.c +++ b/lib/libfrr.c @@ -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 {