diff options
Diffstat (limited to 'ospf6d/ospf6_main.c')
| -rw-r--r-- | ospf6d/ospf6_main.c | 241 |
1 files changed, 109 insertions, 132 deletions
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c index 54ae4645ad..b76b40c5b3 100644 --- a/ospf6d/ospf6_main.c +++ b/ospf6d/ospf6_main.c @@ -14,9 +14,9 @@ * General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with GNU Zebra; see the file COPYING. If not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * along with GNU Zebra; see the file COPYING. If not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. */ #include <zebra.h> @@ -56,184 +56,161 @@ #define OSPF6_VTY_PORT 2606 /* ospf6d privileges */ -zebra_capabilities_t _caps_p [] = -{ - ZCAP_NET_RAW, - ZCAP_BIND -}; +zebra_capabilities_t _caps_p[] = {ZCAP_NET_RAW, ZCAP_BIND}; -struct zebra_privs_t ospf6d_privs = -{ +struct zebra_privs_t ospf6d_privs = { #if defined(FRR_USER) - .user = FRR_USER, + .user = FRR_USER, #endif #if defined FRR_GROUP - .group = FRR_GROUP, + .group = FRR_GROUP, #endif #ifdef VTY_GROUP - .vty_group = VTY_GROUP, + .vty_group = VTY_GROUP, #endif - .caps_p = _caps_p, - .cap_num_p = 2, - .cap_num_i = 0 -}; + .caps_p = _caps_p, + .cap_num_p = 2, + .cap_num_i = 0}; /* ospf6d options, we use GNU getopt library. */ -struct option longopts[] = -{ - { 0 } -}; +struct option longopts[] = {{0}}; /* Master of threads. */ struct thread_master *master; -static void __attribute__ ((noreturn)) -ospf6_exit (int status) +static void __attribute__((noreturn)) ospf6_exit(int status) { - struct listnode *node; - struct interface *ifp; + struct listnode *node; + struct interface *ifp; - if (ospf6) - ospf6_delete (ospf6); + if (ospf6) + ospf6_delete(ospf6); - bfd_gbl_exit(); + bfd_gbl_exit(); - for (ALL_LIST_ELEMENTS_RO (vrf_iflist (VRF_DEFAULT), node, ifp)) - if (ifp->info != NULL) - ospf6_interface_delete(ifp->info); + for (ALL_LIST_ELEMENTS_RO(vrf_iflist(VRF_DEFAULT), node, ifp)) + if (ifp->info != NULL) + ospf6_interface_delete(ifp->info); - ospf6_message_terminate (); - ospf6_asbr_terminate (); - ospf6_lsa_terminate (); + ospf6_message_terminate(); + ospf6_asbr_terminate(); + ospf6_lsa_terminate(); - vrf_terminate (); - vty_terminate (); - cmd_terminate (); + vrf_terminate(); + vty_terminate(); + cmd_terminate(); - if (zclient) - zclient_free (zclient); + if (zclient) + zclient_free(zclient); - if (master) - thread_master_free (master); + if (master) + thread_master_free(master); - closezlog (); + closezlog(); - exit (status); + exit(status); } /* SIGHUP handler. */ -static void -sighup (void) +static void sighup(void) { - zlog_info ("SIGHUP received"); + zlog_info("SIGHUP received"); } /* SIGINT handler. */ -static void -sigint (void) +static void sigint(void) { - zlog_notice ("Terminating on signal SIGINT"); - ospf6_exit (0); + zlog_notice("Terminating on signal SIGINT"); + ospf6_exit(0); } /* SIGTERM handler. */ -static void -sigterm (void) +static void sigterm(void) { - zlog_notice ("Terminating on signal SIGTERM"); - ospf6_clean(); - ospf6_exit (0); + zlog_notice("Terminating on signal SIGTERM"); + ospf6_clean(); + ospf6_exit(0); } /* SIGUSR1 handler. */ -static void -sigusr1 (void) +static void sigusr1(void) { - zlog_info ("SIGUSR1 received"); - zlog_rotate(); + zlog_info("SIGUSR1 received"); + zlog_rotate(); } -struct quagga_signal_t ospf6_signals[] = -{ - { - .signal = SIGHUP, - .handler = &sighup, - }, - { - .signal = SIGINT, - .handler = &sigint, - }, - { - .signal = SIGTERM, - .handler = &sigterm, - }, - { - .signal = SIGUSR1, - .handler = &sigusr1, - }, +struct quagga_signal_t ospf6_signals[] = { + { + .signal = SIGHUP, + .handler = &sighup, + }, + { + .signal = SIGINT, + .handler = &sigint, + }, + { + .signal = SIGTERM, + .handler = &sigterm, + }, + { + .signal = SIGUSR1, + .handler = &sigusr1, + }, }; -FRR_DAEMON_INFO(ospf6d, OSPF6, - .vty_port = OSPF6_VTY_PORT, +FRR_DAEMON_INFO(ospf6d, OSPF6, .vty_port = OSPF6_VTY_PORT, - .proghelp = "Implementation of the OSPFv3 routing protocol.", + .proghelp = "Implementation of the OSPFv3 routing protocol.", - .signals = ospf6_signals, - .n_signals = array_size(ospf6_signals), + .signals = ospf6_signals, + .n_signals = array_size(ospf6_signals), - .privs = &ospf6d_privs, -) + .privs = &ospf6d_privs, ) /* Main routine of ospf6d. Treatment of argument and starting ospf finite state machine is handled here. */ -int -main (int argc, char *argv[], char *envp[]) +int main(int argc, char *argv[], char *envp[]) { - int opt; - - frr_preinit (&ospf6d_di, argc, argv); - frr_opt_add ("", longopts, ""); - - /* Command line argument treatment. */ - while (1) - { - opt = frr_getopt (argc, argv, NULL); - - if (opt == EOF) - break; - - switch (opt) - { - case 0: - break; - default: - frr_help_exit (1); - break; - } - } - - if (geteuid () != 0) - { - errno = EPERM; - perror (ospf6d_di.progname); - exit (1); - } - - /* thread master */ - master = frr_init (); - - vrf_init (); - access_list_init (); - prefix_list_init (); - - /* initialize ospf6 */ - ospf6_init (); - - frr_config_fork (); - frr_run (master); - - /* Not reached. */ - ospf6_exit (0); -} + int opt; + + frr_preinit(&ospf6d_di, argc, argv); + frr_opt_add("", longopts, ""); + /* Command line argument treatment. */ + while (1) { + opt = frr_getopt(argc, argv, NULL); + if (opt == EOF) + break; + + switch (opt) { + case 0: + break; + default: + frr_help_exit(1); + break; + } + } + + if (geteuid() != 0) { + errno = EPERM; + perror(ospf6d_di.progname); + exit(1); + } + + /* thread master */ + master = frr_init(); + + vrf_init(); + access_list_init(); + prefix_list_init(); + + /* initialize ospf6 */ + ospf6_init(); + + frr_config_fork(); + frr_run(master); + + /* Not reached. */ + ospf6_exit(0); +} |
