From: Ben Pfaff Date: Tue, 26 Jul 2011 17:13:07 +0000 (-0700) Subject: ovs-vswitchd: Make database socket command-line argument optional. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80df177a5f624a84f4c97bbe913511726c3e9bb8;p=openvswitch ovs-vswitchd: Make database socket command-line argument optional. In practice the default location is the only one used, so we might as well make it easy. --- diff --git a/INSTALL.Linux b/INSTALL.Linux index 6442fcc9..6c17ca49 100644 --- a/INSTALL.Linux +++ b/INSTALL.Linux @@ -287,8 +287,7 @@ ovsdb-tool (but running it at any time is harmless): Then start the main Open vSwitch daemon, telling it to connect to the same Unix domain socket: - % ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock \ - --pidfile --detach + % ovs-vswitchd --pidfile --detach Now you may use ovs-vsctl to set up bridges and other Open vSwitch features. For example, to create a bridge named br0 and add ports diff --git a/vswitchd/ovs-vswitchd.8.in b/vswitchd/ovs-vswitchd.8.in index 3e41babd..516e6da7 100644 --- a/vswitchd/ovs-vswitchd.8.in +++ b/vswitchd/ovs-vswitchd.8.in @@ -14,17 +14,15 @@ ovs\-vswitchd \- Open vSwitch daemon . .SH SYNOPSIS -.B ovs\-vswitchd -\fIdatabase\fR +\fBovs\-vswitchd \fR[\fIdatabase\fR] . .SH DESCRIPTION A daemon that manages and controls any number of Open vSwitch switches on the local machine. .PP -The mandatory \fIdatabase\fR argument normally takes the form -\fBunix:\fIfile\fR, where \fIfile\fR is the name of a Unix domain -socket on which \fBovsdb\-server\fR is listening. However, all of the -following forms are accepted: +The \fIdatabase\fR argument specifies how \fBovs\-vswitchd\fR connects +to \fBovsdb\-server\fR. The default is \fBunix:@RUNDIR@/db.sock\fR. +The following forms are accepted: .so ovsdb/remote-active.man .so ovsdb/remote-passive.man .PP diff --git a/vswitchd/ovs-vswitchd.c b/vswitchd/ovs-vswitchd.c index a71eeccc..7d4e4d77 100644 --- a/vswitchd/ovs-vswitchd.c +++ b/vswitchd/ovs-vswitchd.c @@ -30,6 +30,7 @@ #include "command-line.h" #include "compiler.h" #include "daemon.h" +#include "dirs.h" #include "dummy.h" #include "leak-checker.h" #include "netdev.h" @@ -52,7 +53,7 @@ VLOG_DEFINE_THIS_MODULE(vswitchd); static unixctl_cb_func ovs_vswitchd_exit; -static const char *parse_options(int argc, char *argv[]); +static char *parse_options(int argc, char *argv[]); static void usage(void) NO_RETURN; int @@ -60,7 +61,7 @@ main(int argc, char *argv[]) { struct unixctl_server *unixctl; struct signal *sighup; - const char *remote; + char *remote; bool exiting; int retval; @@ -82,6 +83,8 @@ main(int argc, char *argv[]) unixctl_command_register("exit", ovs_vswitchd_exit, &exiting); bridge_init(remote); + free(remote); + exiting = false; while (!exiting) { if (signal_poll(sighup)) { @@ -107,7 +110,7 @@ main(int argc, char *argv[]) return 0; } -static const char * +static char * parse_options(int argc, char *argv[]) { enum { @@ -190,21 +193,27 @@ parse_options(int argc, char *argv[]) argc -= optind; argv += optind; - if (argc != 1) { - VLOG_FATAL("database socket is only non-option argument; " + switch (argc) { + case 0: + return xasprintf("unix:%s/db.sock", ovs_rundir()); + + case 1: + return xstrdup(argv[0]); + + default: + VLOG_FATAL("at most one non-option argument accepted; " "use --help for usage"); } - - return argv[0]; } static void usage(void) { printf("%s: Open vSwitch daemon\n" - "usage: %s [OPTIONS] DATABASE\n" - "where DATABASE is a socket on which ovsdb-server is listening.\n", - program_name, program_name); + "usage: %s [OPTIONS] [DATABASE]\n" + "where DATABASE is a socket on which ovsdb-server is listening\n" + " (default: \"unix:%s/db.sock\").\n", + program_name, program_name, ovs_rundir()); stream_usage("DATABASE", true, false, true); daemon_usage(); vlog_usage();