--- embedaddon/quagga/ripd/rip_main.c 2012/02/21 17:26:12 1.1.1.1 +++ embedaddon/quagga/ripd/rip_main.c 2016/11/02 10:09:10 1.1.1.4 @@ -32,6 +32,8 @@ #include "log.h" #include "privs.h" #include "sigevent.h" +#include "zclient.h" +#include "vrf.h" #include "ripd/ripd.h" @@ -41,6 +43,7 @@ static struct option longopts[] = { "daemon", no_argument, NULL, 'd'}, { "config_file", required_argument, NULL, 'f'}, { "pid_file", required_argument, NULL, 'i'}, + { "socket", required_argument, NULL, 'z'}, { "help", no_argument, NULL, 'h'}, { "dryrun", no_argument, NULL, 'C'}, { "vty_addr", required_argument, NULL, 'A'}, @@ -109,6 +112,7 @@ Daemon which manages RIP version 1 and 2.\n\n\ -d, --daemon Runs in daemon mode\n\ -f, --config_file Set configuration file name\n\ -i, --pid_file Set process identifier file name\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\ -C, --dryrun Check configuration for validity and exit\n\ @@ -123,7 +127,7 @@ Report bugs to %s\n", progname, ZEBRA_BUG_ADDRESS); exit (status); } - + /* SIGHUP handler. */ static void sighup (void) @@ -180,7 +184,7 @@ static struct quagga_signal_t ripd_signals[] = .handler = &sigint, }, }; - + /* Main routine of ripd. */ int main (int argc, char **argv) @@ -206,7 +210,7 @@ main (int argc, char **argv) { int opt; - opt = getopt_long (argc, argv, "df:i:hA:P:u:g:rvC", longopts, 0); + opt = getopt_long (argc, argv, "df:i:z:hA:P:u:g:rvC", longopts, 0); if (opt == EOF) break; @@ -227,6 +231,9 @@ main (int argc, char **argv) case 'i': pid_file = optarg; break; + case 'z': + zclient_serv_path_set (optarg); + break; case 'P': /* Deal with atoi() returning 0 on failure, and ripd not listening on rip port... */ @@ -269,20 +276,18 @@ main (int argc, char **argv) /* Library initialization. */ zprivs_init (&ripd_privs); - signal_init (master, Q_SIGC(ripd_signals), ripd_signals); + signal_init (master, array_size(ripd_signals), ripd_signals); cmd_init (1); vty_init (master); memory_init (); keychain_init (); + vrf_init (); /* RIP related initialization. */ rip_init (); rip_if_init (); - rip_zclient_init (); + rip_zclient_init (master); rip_peer_init (); - - /* Sort all installed commands. */ - sort_node (); /* Get configuration file. */ vty_read_config (config_file, config_default);