@@ -294,6 +294,7 @@ lib_libopenvswitch_la_SOURCES += \
lib/latch-windows.c \
lib/route-table-stub.c \
lib/if-notifier-stub.c \
+ lib/stream-windows.c \
lib/strsep.c
else
lib_libopenvswitch_la_SOURCES += \
@@ -74,64 +74,6 @@ const struct stream_class tcp_stream_class = {
NULL, /* run_wait */
NULL, /* wait */
};
-
-#ifdef _WIN32
-#include "dirs.h"
-
-static int
-windows_open(const char *name, char *suffix, struct stream **streamp,
- uint8_t dscp)
-{
- int error, port;
- FILE *file;
- char *suffix_new, *path;
-
- /* If the path does not contain a ':', assume it is relative to
- * OVS_RUNDIR. */
- if (!strchr(suffix, ':')) {
- path = xasprintf("%s/%s", ovs_rundir(), suffix);
- } else {
- path = xstrdup(suffix);
- }
-
- file = fopen(path, "r");
- if (!file) {
- error = errno;
- VLOG_DBG("%s: could not open %s (%s)", name, suffix,
- ovs_strerror(error));
- return error;
- }
-
- error = fscanf(file, "%d", &port);
- if (error != 1) {
- VLOG_ERR("failed to read port from %s", suffix);
- fclose(file);
- return EINVAL;
- }
- fclose(file);
-
- suffix_new = xasprintf("127.0.0.1:%d", port);
-
- error = tcp_open(name, suffix_new, streamp, dscp);
-
- free(suffix_new);
- free(path);
- return error;
-}
-
-const struct stream_class windows_stream_class = {
- "unix", /* name */
- false, /* needs_probes */
- windows_open, /* open */
- NULL, /* close */
- NULL, /* connect */
- NULL, /* recv */
- NULL, /* send */
- NULL, /* run */
- NULL, /* run_wait */
- NULL, /* wait */
-};
-#endif
/* Passive TCP. */
@@ -198,60 +140,3 @@ const struct pstream_class ptcp_pstream_class = {
NULL,
NULL,
};
-
-#ifdef _WIN32
-static int
-pwindows_open(const char *name, char *suffix, struct pstream **pstreamp,
- uint8_t dscp)
-{
- int error;
- char *suffix_new, *path;
- FILE *file;
- struct pstream *listener;
-
- suffix_new = xstrdup("0:127.0.0.1");
-
- /* If the path does not contain a ':', assume it is relative to
- * OVS_RUNDIR. */
- if (!strchr(suffix, ':')) {
- path = xasprintf("%s/%s", ovs_rundir(), suffix);
- } else {
- path = xstrdup(suffix);
- }
-
- error = new_pstream(suffix_new, name, pstreamp, dscp, path, false);
- if (error) {
- goto exit;
- }
- listener = *pstreamp;
-
- file = fopen(path, "w");
- if (!file) {
- error = errno;
- VLOG_DBG("could not open %s (%s)", path, ovs_strerror(error));
- goto exit;
- }
-
- fprintf(file, "%d\n", ntohs(listener->bound_port));
- if (fflush(file) == EOF) {
- error = EIO;
- VLOG_ERR("write failed for %s", path);
- fclose(file);
- goto exit;
- }
- fclose(file);
-
-exit:
- free(suffix_new);
- return error;
-}
-
-const struct pstream_class pwindows_pstream_class = {
- "punix",
- false,
- pwindows_open,
- NULL,
- NULL,
- NULL,
-};
-#endif