*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
/* --accept-vconn: Regular expression specifying the class of controller vconns
* that we will accept during autodiscovery. */
/* --accept-vconn: Regular expression specifying the class of controller vconns
* that we will accept during autodiscovery. */
static regex_t accept_controller_regex;
/* --exit-without-bind: Exit after discovering the controller, without binding
static regex_t accept_controller_regex;
/* --exit-without-bind: Exit after discovering the controller, without binding
static bool exit_after_bind;
static bool iface_init(struct iface *, const char *netdev_name);
static bool exit_after_bind;
static bool iface_init(struct iface *, const char *netdev_name);
static void parse_options(int argc, char *argv[]);
static void usage(void) NO_RETURN;
static void parse_options(int argc, char *argv[]);
static void usage(void) NO_RETURN;
struct iface *iface = &ifaces[i];
dhclient_init(iface->dhcp, 0);
}
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);
retval = regcomp(&accept_controller_regex, accept_controller_re,
REG_NOSUB | REG_EXTENDED);
}
die_if_already_running();
signal(SIGPIPE, SIG_IGN);
for (;;) {
}
die_if_already_running();
signal(SIGPIPE, SIG_IGN);
for (;;) {
for (i = 0; i < n_ifaces; i++) {
struct iface *iface = &ifaces[i];
dhclient_run(iface->dhcp);
for (i = 0; i < n_ifaces; i++) {
struct iface *iface = &ifaces[i];
dhclient_run(iface->dhcp);
};
static struct option long_options[] = {
{"accept-vconn", required_argument, 0, OPT_ACCEPT_VCONN},
};
static struct option long_options[] = {
{"accept-vconn", required_argument, 0, OPT_ACCEPT_VCONN},
{"exit-after-bind", no_argument, 0, OPT_EXIT_AFTER_BIND},
{"no-detach", no_argument, 0, OPT_NO_DETACH},
{"timeout", required_argument, 0, 't'},
{"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'},
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'V'},
vlog_usage();
printf("\nOther options:\n"
" -t, --timeout=SECS give up discovery after SECS seconds\n"
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);
" -h, --help display this help message\n"
" -V, --version display version information\n",
ovs_rundir, program_name);