* PLEASE don't put C++ comments here - this is a C source file.
*/
+/* including rasasync.h (included from windows.h itself included from
+ * wx/setup.h and/or winsock.h results in this warning for
+ * RPCNOTIFICATION_ROUTINE
+ */
+#ifdef _MSC_VER
+# pragma warning(disable:4115) /* named type definition in parentheses */
+#endif
+
#ifndef __GSOCKET_STANDALONE__
#include "wx/setup.h"
#endif
#include <stdlib.h>
#include <stddef.h>
#include <ctype.h>
+
#include <winsock.h>
+#ifdef _MSC_VER
+# pragma warning(default:4115) /* named type definition in parentheses */
+#endif
+
#define CLASSNAME "_GSocket_Internal_Window_Class"
#define WINDOWNAME "_GSocket_Internal_Window_Name"
/* Global initializers */
-bool GSocket_Init()
+int GSocket_Init(void)
{
WSADATA wsaData;
WNDCLASS winClass;
return (WSAStartup((1 << 8) | 1, &wsaData) == 0);
}
-void GSocket_Cleanup()
+void GSocket_Cleanup(void)
{
/* Destroy internal window */
DestroyWindow(hWin);
if (socket->m_fd != INVALID_SOCKET)
{
- WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber,
- FD_READ | FD_WRITE | FD_ACCEPT | FD_CONNECT | FD_CLOSE);
+ /* We could probably just subscribe to all events regardless
+ * of the socket type, but MS recommends to do it this way.
+ */
+ long lEvent = socket->m_server?
+ FD_ACCEPT : (FD_READ | FD_WRITE | FD_CONNECT | FD_CLOSE);
+
+ WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, lEvent);
}
}