X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-discover.c;h=7cd1edf103fe801c30127546f6a8998f8013f7c0;hb=5136ce492c414f377f7be9ae32b259abb9f76580;hp=308c40531e2869f3498ec21677b46291592fdee7;hpb=e7bd7d78b1e1dbc2162f991374c7889c7d7bf60c;p=sliver-openvswitch.git diff --git a/utilities/ovs-discover.c b/utilities/ovs-discover.c index 308c40531..7cd1edf10 100644 --- a/utilities/ovs-discover.c +++ b/utilities/ovs-discover.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -33,9 +33,9 @@ #include "timeval.h" #include "unixctl.h" #include "util.h" - #include "vlog.h" -#define THIS_MODULE VLM_ovs_discover + +VLOG_DEFINE_THIS_MODULE(ovs_discover) struct iface { const char *name; @@ -48,7 +48,7 @@ static int n_ifaces; /* --accept-vconn: Regular expression specifying the class of controller vconns * that we will accept during autodiscovery. */ -static const char *accept_controller_re = ".*"; +static const char *accept_controller_re = "tcp:.*"; static regex_t accept_controller_regex; /* --exit-without-bind: Exit after discovering the controller, without binding @@ -60,7 +60,7 @@ static bool exit_without_bind; static bool exit_after_bind; static bool iface_init(struct iface *, const char *netdev_name); -static void release_ifaces(void *aux UNUSED); +static void release_ifaces(void *aux OVS_UNUSED); static void parse_options(int argc, char *argv[]); static void usage(void) NO_RETURN; @@ -75,9 +75,8 @@ main(int argc, char *argv[]) int retval; int i; + proctitle_init(argc, argv); set_program_name(argv[0]); - time_init(); - vlog_init(); parse_options(argc, argv); argc -= optind; @@ -102,7 +101,7 @@ main(int argc, char *argv[]) struct iface *iface = &ifaces[i]; dhclient_init(iface->dhcp, 0); } - fatal_signal_add_hook(release_ifaces, NULL, true); + fatal_signal_add_hook(release_ifaces, NULL, NULL, true); retval = regcomp(&accept_controller_regex, accept_controller_re, REG_NOSUB | REG_EXTENDED); @@ -115,14 +114,13 @@ main(int argc, char *argv[]) retval = unixctl_server_create(NULL, &unixctl); if (retval) { - ovs_fatal(retval, "Could not listen for unixctl connections"); + exit(EXIT_FAILURE); } die_if_already_running(); signal(SIGPIPE, SIG_IGN); for (;;) { - fatal_signal_block(); for (i = 0; i < n_ifaces; i++) { struct iface *iface = &ifaces[i]; dhclient_run(iface->dhcp); @@ -195,7 +193,6 @@ main(int argc, char *argv[]) dhclient_wait(iface->dhcp); } unixctl_server_wait(unixctl); - fatal_signal_unblock(); poll_block(); } @@ -215,7 +212,7 @@ iface_init(struct iface *iface, const char *netdev_name) * persists past program termination. */ struct netdev *netdev; - retval = netdev_open(iface->name, NETDEV_ETH_TYPE_NONE, &netdev); + retval = netdev_open_default(iface->name, &netdev); if (retval) { ovs_error(retval, "Could not open %s device", iface->name); return false; @@ -239,7 +236,7 @@ iface_init(struct iface *iface, const char *netdev_name) } static void -release_ifaces(void *aux UNUSED) +release_ifaces(void *aux OVS_UNUSED) { int i; @@ -253,13 +250,13 @@ release_ifaces(void *aux UNUSED) } static void -modify_dhcp_request(struct dhcp_msg *msg, void *aux UNUSED) +modify_dhcp_request(struct dhcp_msg *msg, void *aux OVS_UNUSED) { dhcp_msg_put_string(msg, DHCP_CODE_VENDOR_CLASS, "OpenFlow"); } static bool -validate_dhcp_offer(const struct dhcp_msg *msg, void *aux UNUSED) +validate_dhcp_offer(const struct dhcp_msg *msg, void *aux OVS_UNUSED) { static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(60, 60); char *vconn_name; @@ -282,7 +279,8 @@ parse_options(int argc, char *argv[]) OPT_ACCEPT_VCONN = UCHAR_MAX + 1, OPT_EXIT_WITHOUT_BIND, OPT_EXIT_AFTER_BIND, - OPT_NO_DETACH + OPT_NO_DETACH, + VLOG_OPTION_ENUMS }; static struct option long_options[] = { {"accept-vconn", required_argument, 0, OPT_ACCEPT_VCONN}, @@ -292,9 +290,9 @@ parse_options(int argc, char *argv[]) {"timeout", required_argument, 0, 't'}, {"pidfile", optional_argument, 0, OPT_PIDFILE}, {"overwrite-pidfile", no_argument, 0, OPT_OVERWRITE_PIDFILE}, - {"verbose", optional_argument, 0, 'v'}, {"help", no_argument, 0, 'h'}, {"version", no_argument, 0, 'V'}, + VLOG_LONG_OPTIONS, {0, 0, 0, 0}, }; char *short_options = long_options_to_short_options(long_options); @@ -354,9 +352,7 @@ parse_options(int argc, char *argv[]) OVS_PRINT_VERSION(0, 0); exit(EXIT_SUCCESS); - case 'v': - vlog_set_verbosity(optarg); - break; + VLOG_OPTION_HANDLERS case '?': exit(EXIT_FAILURE);