From 0f79e6b876ef99b5be722a2038f519fbbf3a4a67 Mon Sep 17 00:00:00 2001 From: David Lamparter Date: Wed, 24 Jan 2024 21:50:26 +0100 Subject: [PATCH] build: nuke `LDPD_SOCKET` This just unnecessarily complicates things by involving autoconf. Signed-off-by: David Lamparter --- configure.ac | 1 - ldpd/ldp.h | 6 ++++++ ldpd/ldpd.c | 27 +++++---------------------- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/configure.ac b/configure.ac index e443d75bbc..2d21abb6ef 100644 --- a/configure.ac +++ b/configure.ac @@ -2736,7 +2736,6 @@ AC_DEFINE_UNQUOTED([FRR_RUNSTATE_PATH], ["$CFG_STATE"], [/run/frr equivalent]) AC_DEFINE_UNQUOTED([YANG_MODELS_PATH], ["$CFG_YANGMODELS"], [path to YANG data models]) AC_DEFINE_UNQUOTED([WATCHFRR_SH_PATH], ["${CFG_SBIN%/}/watchfrr.sh"], [path to watchfrr.sh]) -AC_DEFINE_UNQUOTED([LDPD_SOCKET], ["$CFG_STATE%s%s/ldpd.sock"], [ldpd control socket]) AC_DEFINE_UNQUOTED([OSPFD_GR_STATE], ["$CFG_STATE%s/ospfd-gr.json"], [ospfd GR state information]) AC_DEFINE_UNQUOTED([OSPF6D_GR_STATE], ["$CFG_STATE/ospf6d-gr.json"], [ospf6d GR state information]) AC_DEFINE_UNQUOTED([ISISD_RESTART], ["$CFG_STATE%s/isid-restart.json"], [isisd restart information]) diff --git a/ldpd/ldp.h b/ldpd/ldp.h index 33cf93cb26..1f0fdb560f 100644 --- a/ldpd/ldp.h +++ b/ldpd/ldp.h @@ -12,6 +12,12 @@ #ifndef _LDP_H_ #define _LDP_H_ +/* this does not include "%s/", frr_runstatedir because the command-line + * override option specifies a *directory* rather than a full file name. + * Therefore the final part is needed on its own. + */ +#define LDPD_SOCK_NAME "ldpd.sock" + /* misc */ #define LDP_VERSION 1 #define LDP_PORT 646 diff --git a/ldpd/ldpd.c b/ldpd/ldpd.c index a4d45d9c8d..bf25467af7 100644 --- a/ldpd/ldpd.c +++ b/ldpd/ldpd.c @@ -232,12 +232,8 @@ main(int argc, char *argv[]) int lflag = 0, eflag = 0; int pipe_parent2ldpe[2], pipe_parent2ldpe_sync[2]; int pipe_parent2lde[2], pipe_parent2lde_sync[2]; - char *ctl_sock_name; bool ctl_sock_used = false; - snprintf(ctl_sock_path, sizeof(ctl_sock_path), LDPD_SOCKET, - "", ""); - ldpd_process = PROC_MAIN; log_procname = log_procnames[ldpd_process]; @@ -263,21 +259,8 @@ main(int argc, char *argv[]) break; case OPTION_CTLSOCK: ctl_sock_used = true; - ctl_sock_name = strrchr(LDPD_SOCKET, '/'); - if (ctl_sock_name) - /* skip '/' */ - ctl_sock_name++; - else - /* - * LDPD_SOCKET configured as relative path - * during config? Should really never happen for - * sensible config - */ - ctl_sock_name = (char *)LDPD_SOCKET; - strlcpy(ctl_sock_path, optarg, sizeof(ctl_sock_path)); - strlcat(ctl_sock_path, "/", sizeof(ctl_sock_path)); - strlcat(ctl_sock_path, ctl_sock_name, - sizeof(ctl_sock_path)); + snprintf(ctl_sock_path, sizeof(ctl_sock_path), + "%s/" LDPD_SOCK_NAME, optarg); break; case 'n': init.instance = atoi(optarg); @@ -295,9 +278,9 @@ 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); + if (!ctl_sock_used) + snprintf(ctl_sock_path, sizeof(ctl_sock_path), + "%s/" LDPD_SOCK_NAME, frr_runstatedir); strlcpy(init.user, ldpd_privs.user, sizeof(init.user)); strlcpy(init.group, ldpd_privs.group, sizeof(init.group));