summaryrefslogtreecommitdiffstats
path: root/src/os_mswin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/os_mswin.c')
-rw-r--r--src/os_mswin.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/os_mswin.c b/src/os_mswin.c
index ed7aa834d4..16268920e3 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -161,7 +161,9 @@ extern HWND s_hwnd;
static HWND s_hwnd = 0; /* console window handle, set by GetConsoleHwnd() */
#endif
-extern int WSInitialized;
+#ifdef FEAT_CHANNEL
+int WSInitialized = FALSE; /* WinSock is initialized */
+#endif
/* Don't generate prototypes here, because some systems do have these
* functions. */
@@ -3093,3 +3095,22 @@ theend:
}
#endif /* defined(FEAT_GUI) || defined(FEAT_PRINTER) */
+
+#if defined(FEAT_CHANNEL) || defined(PROTO)
+/*
+ * Initialize the Winsock dll.
+ */
+ void
+channel_init_winsock()
+{
+ WSADATA wsaData;
+ int wsaerr;
+
+ if (WSInitialized)
+ return;
+
+ wsaerr = WSAStartup(MAKEWORD(2, 2), &wsaData);
+ if (wsaerr == 0)
+ WSInitialized = TRUE;
+}
+#endif