mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-16 04:50:29 +00:00
ldpd: Allow for -N <namespace> to influence location of LDPD_SOCKET
If --ctl_socket is used this will override any other option and will be used If -N <namespace> is used, then we will setup the LDPD_SOCKET in $frr_statedir/<namespace>/ldpd.sock If neither option is used, then we will use $frr_statedir/ldpd.sock Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
This commit is contained in:
parent
89277ebf76
commit
0d675e4946
@ -2202,7 +2202,7 @@ fi
|
|||||||
AC_MSG_RESULT([${frr_statedir}])
|
AC_MSG_RESULT([${frr_statedir}])
|
||||||
AC_SUBST([frr_statedir])
|
AC_SUBST([frr_statedir])
|
||||||
|
|
||||||
AC_DEFINE_UNQUOTED([LDPD_SOCKET], ["$frr_statedir/ldpd.sock"], [ldpd control socket])
|
AC_DEFINE_UNQUOTED([LDPD_SOCKET], ["$frr_statedir%s%s/ldpd.sock"], [ldpd control socket])
|
||||||
AC_DEFINE_UNQUOTED([ZEBRA_SERV_PATH], ["$frr_statedir%s%s/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%s%s/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_VTY_DIR], ["$frr_statedir"], [daemon vty directory])
|
||||||
|
11
ldpd/ldpd.c
11
ldpd/ldpd.c
@ -116,7 +116,7 @@ struct zebra_privs_t ldpd_privs =
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* CTL Socket path */
|
/* CTL Socket path */
|
||||||
char ctl_sock_path[MAXPATHLEN] = LDPD_SOCKET;
|
char ctl_sock_path[MAXPATHLEN];
|
||||||
|
|
||||||
/* LDPd options. */
|
/* LDPd options. */
|
||||||
#define OPTION_CTLSOCK 1001
|
#define OPTION_CTLSOCK 1001
|
||||||
@ -219,6 +219,10 @@ main(int argc, char *argv[])
|
|||||||
int pipe_parent2lde[2], pipe_parent2lde_sync[2];
|
int pipe_parent2lde[2], pipe_parent2lde_sync[2];
|
||||||
char *ctl_sock_name;
|
char *ctl_sock_name;
|
||||||
struct thread *thread = NULL;
|
struct thread *thread = NULL;
|
||||||
|
bool ctl_sock_used = false;
|
||||||
|
|
||||||
|
snprintf(ctl_sock_path, sizeof(ctl_sock_path), LDPD_SOCKET,
|
||||||
|
"", "");
|
||||||
|
|
||||||
ldpd_process = PROC_MAIN;
|
ldpd_process = PROC_MAIN;
|
||||||
log_procname = log_procnames[ldpd_process];
|
log_procname = log_procnames[ldpd_process];
|
||||||
@ -244,6 +248,7 @@ main(int argc, char *argv[])
|
|||||||
case 0:
|
case 0:
|
||||||
break;
|
break;
|
||||||
case OPTION_CTLSOCK:
|
case OPTION_CTLSOCK:
|
||||||
|
ctl_sock_used = true;
|
||||||
ctl_sock_name = strrchr(LDPD_SOCKET, '/');
|
ctl_sock_name = strrchr(LDPD_SOCKET, '/');
|
||||||
if (ctl_sock_name)
|
if (ctl_sock_name)
|
||||||
/* skip '/' */
|
/* skip '/' */
|
||||||
@ -277,6 +282,10 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (ldpd_di.pathspace && !ctl_sock_used)
|
||||||
|
snprintf(ctl_sock_path, sizeof(ctl_sock_path), LDPD_SOCKET,
|
||||||
|
"/", ldpd_di.pathspace);
|
||||||
|
|
||||||
strlcpy(init.user, ldpd_privs.user, sizeof(init.user));
|
strlcpy(init.user, ldpd_privs.user, sizeof(init.user));
|
||||||
strlcpy(init.group, ldpd_privs.group, sizeof(init.group));
|
strlcpy(init.group, ldpd_privs.group, sizeof(init.group));
|
||||||
strlcpy(init.ctl_sock_path, ctl_sock_path, sizeof(init.ctl_sock_path));
|
strlcpy(init.ctl_sock_path, ctl_sock_path, sizeof(init.ctl_sock_path));
|
||||||
|
Loading…
Reference in New Issue
Block a user