1 diff -r 47135c91cd9c src/vncdisplay.c
2 --- a/src/vncdisplay.c Thu Oct 09 11:23:09 2008 -0400
3 +++ b/src/vncdisplay.c Wed Oct 29 14:52:36 2008 +0000
9 +#ifdef HAVE_WINSOCK2_H
10 +#include <winsock2.h>
13 +static void winsock_startup (void);
14 +static void winsock_cleanup (void);
16 #define VNC_DISPLAY_GET_PRIVATE(obj) \
17 (G_TYPE_INSTANCE_GET_PRIVATE((obj), VNC_TYPE_DISPLAY, VncDisplayPrivate))
20 GtkWidget *vnc_display_new(void)
23 return GTK_WIDGET(g_object_new(VNC_TYPE_DISPLAY, NULL));
29 g_object_unref(G_OBJECT(data));
36 @@ -2188,6 +2199,49 @@
42 +/* On Windows, we must call WSAStartup before using any sockets and we
43 + * must call WSACleanup afterwards. And we have to balance any calls
44 + * to WSAStartup with a corresponding call to WSACleanup.
46 + * Note that Wine lets you do socket calls anyway, but real Windows
47 + * doesn't. (http://bugs.winehq.org/show_bug.cgi?id=11965)
51 +winsock_startup (void)
53 + WORD winsock_version, err;
54 + WSADATA winsock_data;
56 + /* http://msdn2.microsoft.com/en-us/library/ms742213.aspx */
57 + winsock_version = MAKEWORD (2, 2);
58 + err = WSAStartup (winsock_version, &winsock_data);
60 + GVNC_DEBUG ("ignored error %d from WSAStartup", err);
64 +winsock_cleanup (void)
72 +winsock_startup (void)
77 +winsock_cleanup (void)