From a085daef8a77a441a4e28c33517ead15d4399253 Mon Sep 17 00:00:00 2001 From: Gurucharan Shetty Date: Fri, 28 Mar 2014 08:37:36 -0700 Subject: [PATCH] ovs-appctl: A port for Windows. Signed-off-by: Gurucharan Shetty Acked-by: Ben Pfaff --- BUILD.Windows | 3 ++- utilities/ovs-appctl.8.in | 9 +++++++++ utilities/ovs-appctl.c | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/BUILD.Windows b/BUILD.Windows index 119334b13..ca0d25228 100644 --- a/BUILD.Windows +++ b/BUILD.Windows @@ -61,7 +61,8 @@ or from a distribution tar ball. % make lib/vswitch-idl.h lib/vtep-idl.h ofproto/ipfix-entities.def % make ovsdb/ovsdb-server.exe ovsdb/ovsdb-tool.exe ovsdb/ovsdb-client.exe \ utilities/ovs-vsctl.exe utilities/ovs-ofctl.exe \ - utilities/ovs-dpctl.exe vswitchd/ovs-vswitchd.exe + utilities/ovs-dpctl.exe vswitchd/ovs-vswitchd.exe \ + utilities/ovs-appctl.exe OpenSSL, Open vSwitch and Visual C++ ------------------------------------ diff --git a/utilities/ovs-appctl.8.in b/utilities/ovs-appctl.8.in index cfb74ebfb..440853aef 100644 --- a/utilities/ovs-appctl.8.in +++ b/utilities/ovs-appctl.8.in @@ -52,6 +52,15 @@ named \fB@RUNDIR@/\fItarget\fB.\fIpid\fB.ctl\fR, where \fIpid\fR is replaced by the process ID read from the pidfile, and uses that file as if it had been specified directly as the target. .IP +On Windows, \fItarget\fR can be an absolute path to a file that contains +a localhost TCP port on which an Open vSwitch daemon is listening +for control channel connections. By default, each daemon writes the +TCP port on which it is listening for control connection into the file +\fIprogram\fB.ctl\fR located inside the configured \fIOVS_RUNDIR\fR +directory. If \fItarget\fR is not an absolute path, \fBovs\-appctl\fR +looks for a file named \fItarget\fB.ctl\fR in the configured \fIOVS_RUNDIR\fR +directory. +.IP The default target is \fBovs\-vswitchd\fR. . .SH COMMON COMMANDS diff --git a/utilities/ovs-appctl.c b/utilities/ovs-appctl.c index c6a7fd489..a6fbebd0e 100644 --- a/utilities/ovs-appctl.c +++ b/utilities/ovs-appctl.c @@ -181,6 +181,7 @@ connect_to_target(const char *target) char *socket_name; int error; +#ifndef _WIN32 if (target[0] != '/') { char *pidfile_name; pid_t pid; @@ -193,6 +194,12 @@ connect_to_target(const char *target) free(pidfile_name); socket_name = xasprintf("%s/%s.%ld.ctl", ovs_rundir(), target, (long int) pid); +#else + /* On windows, if the 'target' contains ':', we make an assumption that + * it is an absolute path. */ + if (!strchr(target, ':')) { + socket_name = xasprintf("%s/%s.ctl", ovs_rundir(), target); +#endif } else { socket_name = xstrdup(target); } -- 2.20.1