summaryrefslogtreecommitdiff
path: root/utilities
diff options
context:
space:
mode:
authorGurucharan Shetty <gshetty@nicira.com>2014-03-28 08:37:36 -0700
committerGurucharan Shetty <gshetty@nicira.com>2014-03-28 11:09:31 -0700
commita085daef8a77a441a4e28c33517ead15d4399253 (patch)
tree2f7c709a5d47e0ab8010503de33023d368129944 /utilities
parentcb54a8c57646a1549dcff0c2ad4c2d8b46bc2880 (diff)
downloadopenvswitch-a085daef8a77a441a4e28c33517ead15d4399253.tar.gz
ovs-appctl: A port for Windows.
Signed-off-by: Gurucharan Shetty <gshetty@nicira.com> Acked-by: Ben Pfaff <blp@nicira.com>
Diffstat (limited to 'utilities')
-rw-r--r--utilities/ovs-appctl.8.in9
-rw-r--r--utilities/ovs-appctl.c7
2 files changed, 16 insertions, 0 deletions
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);
}