summaryrefslogtreecommitdiff
path: root/ripngd/ripng_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'ripngd/ripng_main.c')
-rw-r--r--ripngd/ripng_main.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index 14711a1a65..1677996eaa 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -44,6 +44,7 @@ char config_default[] = SYSCONFDIR RIPNG_DEFAULT_CONFIG;
char *config_file = NULL;
/* RIPngd options. */
+#define OPTION_VTYSOCK 1000
struct option longopts[] =
{
{ "daemon", no_argument, NULL, 'd'},
@@ -54,6 +55,7 @@ struct option longopts[] =
{ "help", no_argument, NULL, 'h'},
{ "vty_addr", required_argument, NULL, 'A'},
{ "vty_port", required_argument, NULL, 'P'},
+ { "vty_socket", required_argument, NULL, OPTION_VTYSOCK},
{ "retain", no_argument, NULL, 'r'},
{ "user", required_argument, NULL, 'u'},
{ "group", required_argument, NULL, 'g'},
@@ -87,6 +89,9 @@ struct zebra_privs_t ripngd_privs =
/* RIPngd program name */
+/* VTY Socket prefix */
+char vty_sock_path[MAXPATHLEN] = RIPNG_VTYSH_PATH;
+
/* Route retain mode flag. */
int retain_mode = 0;
@@ -118,6 +123,7 @@ Daemon which manages RIPng.\n\n\
-z, --socket Set path of zebra socket\n\
-A, --vty_addr Set vty's bind address\n\
-P, --vty_port Set vty's port number\n\
+ --vty_socket Override vty socket path\n\
-r, --retain When program terminates, retain added route by ripngd.\n\
-u, --user User to run as\n\
-g, --group Group to run as\n\
@@ -141,7 +147,7 @@ sighup (void)
/* Reload config file. */
vty_read_config (config_file, config_default);
/* Create VTY's socket */
- vty_serv_sock (vty_addr, vty_port, RIPNG_VTYSH_PATH);
+ vty_serv_sock (vty_addr, vty_port, vty_sock_path);
/* Try to return to normal operation. */
}
@@ -195,6 +201,7 @@ main (int argc, char **argv)
char *progname;
struct thread thread;
int dryrun = 0;
+ char *vty_sock_name;
/* Set umask before anything for security */
umask (0027);
@@ -249,6 +256,9 @@ main (int argc, char **argv)
if (vty_port <= 0 || vty_port > 0xffff)
vty_port = RIPNG_VTY_PORT;
break;
+ case OPTION_VTYSOCK:
+ set_socket_path(vty_sock_path, RIPNG_VTYSH_PATH, optarg, sizeof (vty_sock_path));
+ break;
case 'r':
retain_mode = 1;
break;
@@ -303,7 +313,7 @@ main (int argc, char **argv)
}
/* Create VTY socket */
- vty_serv_sock (vty_addr, vty_port, RIPNG_VTYSH_PATH);
+ vty_serv_sock (vty_addr, vty_port, vty_sock_path);
/* Process id file create. */
pid_output (pid_file);