X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=utilities%2Fovs-discover.c;h=7cd1edf103fe801c30127546f6a8998f8013f7c0;hb=85da620e9788b473797b95212b916327974e6942;hp=f47edc7215033d057859f04f041076c10edd3028;hpb=12fb742b6f0a08590f9ef8d246cd3f57e87b57de;p=sliver-openvswitch.git diff --git a/utilities/ovs-discover.c b/utilities/ovs-discover.c index f47edc721..7cd1edf10 100644 --- a/utilities/ovs-discover.c +++ b/utilities/ovs-discover.c @@ -1,17 +1,17 @@ /* - * Copyright (c) 2008, 2009 Nicira Networks. + * Copyright (c) 2008, 2009, 2010 Nicira Networks. * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at: * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. */ #include @@ -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; @@ -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; @@ -283,6 +280,7 @@ parse_options(int argc, char *argv[]) OPT_EXIT_WITHOUT_BIND, OPT_EXIT_AFTER_BIND, OPT_NO_DETACH, + VLOG_OPTION_ENUMS }; static struct option long_options[] = { {"accept-vconn", required_argument, 0, OPT_ACCEPT_VCONN}, @@ -290,11 +288,11 @@ parse_options(int argc, char *argv[]) {"exit-after-bind", no_argument, 0, OPT_EXIT_AFTER_BIND}, {"no-detach", no_argument, 0, OPT_NO_DETACH}, {"timeout", required_argument, 0, 't'}, - {"pidfile", optional_argument, 0, 'P'}, - {"force", no_argument, 0, 'f'}, - {"verbose", optional_argument, 0, 'v'}, + {"pidfile", optional_argument, 0, OPT_PIDFILE}, + {"overwrite-pidfile", no_argument, 0, OPT_OVERWRITE_PIDFILE}, {"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); @@ -328,11 +326,11 @@ parse_options(int argc, char *argv[]) detach_after_bind = false; break; - case 'P': + case OPT_PIDFILE: set_pidfile(optarg); break; - case 'f': + case OPT_OVERWRITE_PIDFILE: ignore_existing_pidfile(); break; @@ -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); @@ -396,8 +392,9 @@ usage(void) vlog_usage(); printf("\nOther options:\n" " -t, --timeout=SECS give up discovery after SECS seconds\n" - " -P, --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n" - " -f, --force with -P, start even if already running\n" + " --pidfile[=FILE] create pidfile (default: %s/%s.pid)\n" + " --overwrite-pidfile with --pidfile, start even if already " + "running\n" " -h, --help display this help message\n" " -V, --version display version information\n", ovs_rundir, program_name);