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); +}  | 
