From: Vadim Zeitlin Date: Thu, 25 Dec 2008 18:41:13 +0000 (+0000) Subject: rename gsockmsw files to sockmsw X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/bb20575e6e0f498e2766b01d77c7cf85b4bcd241 rename gsockmsw files to sockmsw git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57549 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/Makefile.in b/Makefile.in index a8aafa287a..2a059954ab 100644 --- a/Makefile.in +++ b/Makefile.in @@ -807,7 +807,7 @@ ALL_BASE_SOURCES = \ src/unix/sockunix.cpp \ src/osx/core/sockosx.cpp \ src/msw/gsocket.cpp \ - src/msw/gsockmsw.cpp \ + src/msw/sockmsw.cpp \ src/msw/urlmsw.cpp \ $(NET_WINCE_SRC) \ src/xml/xml.cpp \ @@ -4046,7 +4046,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS = \ @COND_PLATFORM_UNIX_1@ monodll_socketiohandler.o monodll_sockunix.o COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS = \ monodll_gsocket.o \ - monodll_gsockmsw.o \ + monodll_sockmsw.o \ monodll_urlmsw.o \ $(__NET_WINCE_SRC_OBJECTS) @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS) @@ -5868,7 +5868,7 @@ COND_PLATFORM_WIN32_1___BASE_PLATFORM_SRC_OBJECTS_1 = \ @COND_PLATFORM_UNIX_1@ monolib_socketiohandler.o monolib_sockunix.o COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_1 = \ monolib_gsocket.o \ - monolib_gsockmsw.o \ + monolib_sockmsw.o \ monolib_urlmsw.o \ $(__NET_WINCE_SRC_OBJECTS_1) @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS_1 = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_1) @@ -7871,7 +7871,7 @@ COND_USE_SOSYMLINKS_1___netdll___so_symlinks_uninst_cmd = rm -f \ @COND_PLATFORM_UNIX_1@ netdll_socketiohandler.o netdll_sockunix.o COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_2 = \ netdll_gsocket.o \ - netdll_gsockmsw.o \ + netdll_sockmsw.o \ netdll_urlmsw.o \ $(__NET_WINCE_SRC_OBJECTS_2) @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS_2 = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_2) @@ -7894,7 +7894,7 @@ COND_MONOLITHIC_0_SHARED_0___netlib___depname = \ @COND_PLATFORM_UNIX_1@ netlib_socketiohandler.o netlib_sockunix.o COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_3 = \ netlib_gsocket.o \ - netlib_gsockmsw.o \ + netlib_sockmsw.o \ netlib_urlmsw.o \ $(__NET_WINCE_SRC_OBJECTS_3) @COND_PLATFORM_WIN32_1@__NET_PLATFORM_SRC_OBJECTS_3 = $(COND_PLATFORM_WIN32_1___NET_PLATFORM_SRC_OBJECTS_3) @@ -14552,8 +14552,8 @@ monodll_url.o: $(srcdir)/src/common/url.cpp $(MONODLL_ODEP) monodll_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(MONODLL_ODEP) $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp -monodll_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(MONODLL_ODEP) - $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp +monodll_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(MONODLL_ODEP) + $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp monodll_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(MONODLL_ODEP) $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp @@ -19250,8 +19250,8 @@ monolib_url.o: $(srcdir)/src/common/url.cpp $(MONOLIB_ODEP) monolib_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(MONOLIB_ODEP) $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp -monolib_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(MONOLIB_ODEP) - $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp +monolib_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(MONOLIB_ODEP) + $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp monolib_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(MONOLIB_ODEP) $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp @@ -24500,8 +24500,8 @@ netdll_url.o: $(srcdir)/src/common/url.cpp $(NETDLL_ODEP) netdll_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(NETDLL_ODEP) $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp -netdll_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(NETDLL_ODEP) - $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp +netdll_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(NETDLL_ODEP) + $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp netdll_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(NETDLL_ODEP) $(CXXC) -c -o $@ $(NETDLL_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp @@ -24560,8 +24560,8 @@ netlib_url.o: $(srcdir)/src/common/url.cpp $(NETLIB_ODEP) netlib_gsocket.o: $(srcdir)/src/msw/gsocket.cpp $(NETLIB_ODEP) $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/gsocket.cpp -netlib_gsockmsw.o: $(srcdir)/src/msw/gsockmsw.cpp $(NETLIB_ODEP) - $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/gsockmsw.cpp +netlib_sockmsw.o: $(srcdir)/src/msw/sockmsw.cpp $(NETLIB_ODEP) + $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/sockmsw.cpp netlib_urlmsw.o: $(srcdir)/src/msw/urlmsw.cpp $(NETLIB_ODEP) $(CXXC) -c -o $@ $(NETLIB_CXXFLAGS) $(srcdir)/src/msw/urlmsw.cpp diff --git a/build/bakefiles/files.bkl b/build/bakefiles/files.bkl index 99bc346a99..0523381741 100644 --- a/build/bakefiles/files.bkl +++ b/build/bakefiles/files.bkl @@ -543,11 +543,11 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file! src/msw/gsocket.cpp - src/msw/gsockmsw.cpp + src/msw/sockmsw.cpp src/msw/urlmsw.cpp - wx/msw/gsockmsw.h + wx/msw/private/sockmsw.h diff --git a/build/msw/makefile.bcc b/build/msw/makefile.bcc index dab153b014..882962fec8 100644 --- a/build/msw/makefile.bcc +++ b/build/msw/makefile.bcc @@ -420,7 +420,7 @@ MONODLL_OBJECTS = \ $(OBJS)\monodll_socket.obj \ $(OBJS)\monodll_url.obj \ $(OBJS)\monodll_gsocket.obj \ - $(OBJS)\monodll_gsockmsw.obj \ + $(OBJS)\monodll_sockmsw.obj \ $(OBJS)\monodll_urlmsw.obj \ $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) \ $(OBJS)\monodll_xml.obj \ @@ -559,7 +559,7 @@ MONOLIB_OBJECTS = \ $(OBJS)\monolib_socket.obj \ $(OBJS)\monolib_url.obj \ $(OBJS)\monolib_gsocket.obj \ - $(OBJS)\monolib_gsockmsw.obj \ + $(OBJS)\monolib_sockmsw.obj \ $(OBJS)\monolib_urlmsw.obj \ $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) \ $(OBJS)\monolib_xml.obj \ @@ -825,7 +825,7 @@ NETDLL_OBJECTS = \ $(OBJS)\netdll_socket.obj \ $(OBJS)\netdll_url.obj \ $(OBJS)\netdll_gsocket.obj \ - $(OBJS)\netdll_gsockmsw.obj \ + $(OBJS)\netdll_sockmsw.obj \ $(OBJS)\netdll_urlmsw.obj NETLIB_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \ $(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \ @@ -848,7 +848,7 @@ NETLIB_OBJECTS = \ $(OBJS)\netlib_socket.obj \ $(OBJS)\netlib_url.obj \ $(OBJS)\netlib_gsocket.obj \ - $(OBJS)\netlib_gsockmsw.obj \ + $(OBJS)\netlib_sockmsw.obj \ $(OBJS)\netlib_urlmsw.obj COREDLL_CXXFLAGS = $(__RUNTIME_LIBS) -I$(BCCDIR)\include $(__DEBUGINFO) \ $(__OPTIMIZEFLAG) $(__THREADSFLAG) -D__WXMSW__ $(__WXUNIV_DEFINE_p) \ @@ -5720,8 +5720,8 @@ $(OBJS)\monodll_url.obj: ..\..\src\common\url.cpp $(OBJS)\monodll_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\monodll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\monodll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\monodll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp @@ -7934,8 +7934,8 @@ $(OBJS)\monolib_url.obj: ..\..\src\common\url.cpp $(OBJS)\monolib_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\monolib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\monolib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\monolib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp @@ -10463,8 +10463,8 @@ $(OBJS)\netdll_url.obj: ..\..\src\common\url.cpp $(OBJS)\netdll_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\netdll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\netdll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\netdll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) -q -c -P -o$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp @@ -10505,8 +10505,8 @@ $(OBJS)\netlib_url.obj: ..\..\src\common\url.cpp $(OBJS)\netlib_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\netlib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\netlib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\netlib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) -q -c -P -o$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp diff --git a/build/msw/makefile.gcc b/build/msw/makefile.gcc index e0c7300937..4794378412 100644 --- a/build/msw/makefile.gcc +++ b/build/msw/makefile.gcc @@ -406,7 +406,7 @@ MONODLL_OBJECTS = \ $(OBJS)\monodll_socket.o \ $(OBJS)\monodll_url.o \ $(OBJS)\monodll_gsocket.o \ - $(OBJS)\monodll_gsockmsw.o \ + $(OBJS)\monodll_sockmsw.o \ $(OBJS)\monodll_urlmsw.o \ $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) \ $(OBJS)\monodll_xml.o \ @@ -546,7 +546,7 @@ MONOLIB_OBJECTS = \ $(OBJS)\monolib_socket.o \ $(OBJS)\monolib_url.o \ $(OBJS)\monolib_gsocket.o \ - $(OBJS)\monolib_gsockmsw.o \ + $(OBJS)\monolib_sockmsw.o \ $(OBJS)\monolib_urlmsw.o \ $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) \ $(OBJS)\monolib_xml.o \ @@ -816,7 +816,7 @@ NETDLL_OBJECTS = \ $(OBJS)\netdll_socket.o \ $(OBJS)\netdll_url.o \ $(OBJS)\netdll_gsocket.o \ - $(OBJS)\netdll_gsockmsw.o \ + $(OBJS)\netdll_sockmsw.o \ $(OBJS)\netdll_urlmsw.o NETLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) $(GCCFLAGS) \ -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) \ @@ -839,7 +839,7 @@ NETLIB_OBJECTS = \ $(OBJS)\netlib_socket.o \ $(OBJS)\netlib_url.o \ $(OBJS)\netlib_gsocket.o \ - $(OBJS)\netlib_gsockmsw.o \ + $(OBJS)\netlib_sockmsw.o \ $(OBJS)\netlib_urlmsw.o COREDLL_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) \ $(GCCFLAGS) -DHAVE_W32API_H -D__WXMSW__ $(__WXUNIV_DEFINE_p) \ @@ -5872,7 +5872,7 @@ $(OBJS)\monodll_url.o: ../../src/common/url.cpp $(OBJS)\monodll_gsocket.o: ../../src/msw/gsocket.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\monodll_gsockmsw.o: ../../src/msw/gsockmsw.cpp +$(OBJS)\monodll_sockmsw.o: ../../src/msw/sockmsw.cpp $(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\monodll_urlmsw.o: ../../src/msw/urlmsw.cpp @@ -8200,7 +8200,7 @@ $(OBJS)\monolib_url.o: ../../src/common/url.cpp $(OBJS)\monolib_gsocket.o: ../../src/msw/gsocket.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\monolib_gsockmsw.o: ../../src/msw/gsockmsw.cpp +$(OBJS)\monolib_sockmsw.o: ../../src/msw/sockmsw.cpp $(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\monolib_urlmsw.o: ../../src/msw/urlmsw.cpp @@ -10843,7 +10843,7 @@ $(OBJS)\netdll_url.o: ../../src/common/url.cpp $(OBJS)\netdll_gsocket.o: ../../src/msw/gsocket.cpp $(CXX) -c -o $@ $(NETDLL_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\netdll_gsockmsw.o: ../../src/msw/gsockmsw.cpp +$(OBJS)\netdll_sockmsw.o: ../../src/msw/sockmsw.cpp $(CXX) -c -o $@ $(NETDLL_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\netdll_urlmsw.o: ../../src/msw/urlmsw.cpp @@ -10885,7 +10885,7 @@ $(OBJS)\netlib_url.o: ../../src/common/url.cpp $(OBJS)\netlib_gsocket.o: ../../src/msw/gsocket.cpp $(CXX) -c -o $@ $(NETLIB_CXXFLAGS) $(CPPDEPS) $< -$(OBJS)\netlib_gsockmsw.o: ../../src/msw/gsockmsw.cpp +$(OBJS)\netlib_sockmsw.o: ../../src/msw/sockmsw.cpp $(CXX) -c -o $@ $(NETLIB_CXXFLAGS) $(CPPDEPS) $< $(OBJS)\netlib_urlmsw.o: ../../src/msw/urlmsw.cpp diff --git a/build/msw/makefile.vc b/build/msw/makefile.vc index 626d440eec..e9d76d70bb 100644 --- a/build/msw/makefile.vc +++ b/build/msw/makefile.vc @@ -421,7 +421,7 @@ MONODLL_OBJECTS = \ $(OBJS)\monodll_socket.obj \ $(OBJS)\monodll_url.obj \ $(OBJS)\monodll_gsocket.obj \ - $(OBJS)\monodll_gsockmsw.obj \ + $(OBJS)\monodll_sockmsw.obj \ $(OBJS)\monodll_urlmsw.obj \ $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) \ $(OBJS)\monodll_xml.obj \ @@ -565,7 +565,7 @@ MONOLIB_OBJECTS = \ $(OBJS)\monolib_socket.obj \ $(OBJS)\monolib_url.obj \ $(OBJS)\monolib_gsocket.obj \ - $(OBJS)\monolib_gsockmsw.obj \ + $(OBJS)\monolib_sockmsw.obj \ $(OBJS)\monolib_urlmsw.obj \ $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) \ $(OBJS)\monolib_xml.obj \ @@ -846,7 +846,7 @@ NETDLL_OBJECTS = \ $(OBJS)\netdll_socket.obj \ $(OBJS)\netdll_url.obj \ $(OBJS)\netdll_gsocket.obj \ - $(OBJS)\netdll_gsockmsw.obj \ + $(OBJS)\netdll_sockmsw.obj \ $(OBJS)\netdll_urlmsw.obj NETLIB_CXXFLAGS = /M$(__RUNTIME_LIBS_167)$(__DEBUGRUNTIME) /DWIN32 \ $(__DEBUGINFO) \ @@ -872,7 +872,7 @@ NETLIB_OBJECTS = \ $(OBJS)\netlib_socket.obj \ $(OBJS)\netlib_url.obj \ $(OBJS)\netlib_gsocket.obj \ - $(OBJS)\netlib_gsockmsw.obj \ + $(OBJS)\netlib_sockmsw.obj \ $(OBJS)\netlib_urlmsw.obj COREDLL_CXXFLAGS = /M$(__RUNTIME_LIBS_181)$(__DEBUGRUNTIME) /DWIN32 \ $(__DEBUGINFO) \ @@ -6066,8 +6066,8 @@ $(OBJS)\monodll_url.obj: ..\..\src\common\url.cpp $(OBJS)\monodll_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\monodll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\monodll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\monodll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp @@ -8280,8 +8280,8 @@ $(OBJS)\monolib_url.obj: ..\..\src\common\url.cpp $(OBJS)\monolib_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\monolib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\monolib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\monolib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp @@ -10809,8 +10809,8 @@ $(OBJS)\netdll_url.obj: ..\..\src\common\url.cpp $(OBJS)\netdll_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\netdll_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\netdll_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\netdll_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) /c /nologo /TP /Fo$@ $(NETDLL_CXXFLAGS) ..\..\src\msw\urlmsw.cpp @@ -10851,8 +10851,8 @@ $(OBJS)\netlib_url.obj: ..\..\src\common\url.cpp $(OBJS)\netlib_gsocket.obj: ..\..\src\msw\gsocket.cpp $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsocket.cpp -$(OBJS)\netlib_gsockmsw.obj: ..\..\src\msw\gsockmsw.cpp - $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\gsockmsw.cpp +$(OBJS)\netlib_sockmsw.obj: ..\..\src\msw\sockmsw.cpp + $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\sockmsw.cpp $(OBJS)\netlib_urlmsw.obj: ..\..\src\msw\urlmsw.cpp $(CXX) /c /nologo /TP /Fo$@ $(NETLIB_CXXFLAGS) ..\..\src\msw\urlmsw.cpp diff --git a/build/msw/makefile.wat b/build/msw/makefile.wat index 7801cbb6eb..f7a869151a 100644 --- a/build/msw/makefile.wat +++ b/build/msw/makefile.wat @@ -3498,7 +3498,7 @@ MONODLL_OBJECTS = & $(OBJS)\monodll_socket.obj & $(OBJS)\monodll_url.obj & $(OBJS)\monodll_gsocket.obj & - $(OBJS)\monodll_gsockmsw.obj & + $(OBJS)\monodll_sockmsw.obj & $(OBJS)\monodll_urlmsw.obj & $(____MONOLIB_GUI_SRC_FILENAMES_OBJECTS) & $(OBJS)\monodll_xml.obj & @@ -3637,7 +3637,7 @@ MONOLIB_OBJECTS = & $(OBJS)\monolib_socket.obj & $(OBJS)\monolib_url.obj & $(OBJS)\monolib_gsocket.obj & - $(OBJS)\monolib_gsockmsw.obj & + $(OBJS)\monolib_sockmsw.obj & $(OBJS)\monolib_urlmsw.obj & $(____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS) & $(OBJS)\monolib_xml.obj & @@ -3905,7 +3905,7 @@ NETDLL_OBJECTS = & $(OBJS)\netdll_socket.obj & $(OBJS)\netdll_url.obj & $(OBJS)\netdll_gsocket.obj & - $(OBJS)\netdll_gsockmsw.obj & + $(OBJS)\netdll_sockmsw.obj & $(OBJS)\netdll_urlmsw.obj NETLIB_CXXFLAGS = $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) & $(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) & @@ -3928,7 +3928,7 @@ NETLIB_OBJECTS = & $(OBJS)\netlib_socket.obj & $(OBJS)\netlib_url.obj & $(OBJS)\netlib_gsocket.obj & - $(OBJS)\netlib_gsockmsw.obj & + $(OBJS)\netlib_sockmsw.obj & $(OBJS)\netlib_urlmsw.obj COREDLL_CXXFLAGS = -bd $(__DEBUGINFO) $(__OPTIMIZEFLAG) $(__THREADSFLAG) & $(__RUNTIME_LIBS) -d__WXMSW__ $(__WXUNIV_DEFINE_p) $(__DEBUG_DEFINE_p) & @@ -6117,7 +6117,7 @@ $(OBJS)\monodll_url.obj : .AUTODEPEND ..\..\src\common\url.cpp $(OBJS)\monodll_gsocket.obj : .AUTODEPEND ..\..\src\msw\gsocket.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< -$(OBJS)\monodll_gsockmsw.obj : .AUTODEPEND ..\..\src\msw\gsockmsw.cpp +$(OBJS)\monodll_sockmsw.obj : .AUTODEPEND ..\..\src\msw\sockmsw.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONODLL_CXXFLAGS) $< $(OBJS)\monodll_urlmsw.obj : .AUTODEPEND ..\..\src\msw\urlmsw.cpp @@ -8445,7 +8445,7 @@ $(OBJS)\monolib_url.obj : .AUTODEPEND ..\..\src\common\url.cpp $(OBJS)\monolib_gsocket.obj : .AUTODEPEND ..\..\src\msw\gsocket.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< -$(OBJS)\monolib_gsockmsw.obj : .AUTODEPEND ..\..\src\msw\gsockmsw.cpp +$(OBJS)\monolib_sockmsw.obj : .AUTODEPEND ..\..\src\msw\sockmsw.cpp $(CXX) -bt=nt -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $< $(OBJS)\monolib_urlmsw.obj : .AUTODEPEND ..\..\src\msw\urlmsw.cpp @@ -11088,7 +11088,7 @@ $(OBJS)\netdll_url.obj : .AUTODEPEND ..\..\src\common\url.cpp $(OBJS)\netdll_gsocket.obj : .AUTODEPEND ..\..\src\msw\gsocket.cpp $(CXX) -bt=nt -zq -fo=$^@ $(NETDLL_CXXFLAGS) $< -$(OBJS)\netdll_gsockmsw.obj : .AUTODEPEND ..\..\src\msw\gsockmsw.cpp +$(OBJS)\netdll_sockmsw.obj : .AUTODEPEND ..\..\src\msw\sockmsw.cpp $(CXX) -bt=nt -zq -fo=$^@ $(NETDLL_CXXFLAGS) $< $(OBJS)\netdll_urlmsw.obj : .AUTODEPEND ..\..\src\msw\urlmsw.cpp @@ -11130,7 +11130,7 @@ $(OBJS)\netlib_url.obj : .AUTODEPEND ..\..\src\common\url.cpp $(OBJS)\netlib_gsocket.obj : .AUTODEPEND ..\..\src\msw\gsocket.cpp $(CXX) -bt=nt -zq -fo=$^@ $(NETLIB_CXXFLAGS) $< -$(OBJS)\netlib_gsockmsw.obj : .AUTODEPEND ..\..\src\msw\gsockmsw.cpp +$(OBJS)\netlib_sockmsw.obj : .AUTODEPEND ..\..\src\msw\sockmsw.cpp $(CXX) -bt=nt -zq -fo=$^@ $(NETLIB_CXXFLAGS) $< $(OBJS)\netlib_urlmsw.obj : .AUTODEPEND ..\..\src\msw\urlmsw.cpp diff --git a/build/msw/wx_net.dsp b/build/msw/wx_net.dsp index 243f70b8d5..bbd3a4e987 100644 --- a/build/msw/wx_net.dsp +++ b/build/msw/wx_net.dsp @@ -298,7 +298,7 @@ SOURCE=..\..\src\msw\gsocket.cpp # End Source File # Begin Source File -SOURCE=..\..\src\msw\gsockmsw.cpp +SOURCE=..\..\src\msw\sockmsw.cpp # End Source File # Begin Source File @@ -578,7 +578,7 @@ InputPath=..\..\include\wx\msw\genrcdefs.h # End Source File # Begin Source File -SOURCE=..\..\include\wx\msw\gsockmsw.h +SOURCE=..\..\include\wx\msw\private\sockmsw.h # End Source File # End Group # Begin Group "Common Headers" diff --git a/build/msw/wx_vc7_net.vcproj b/build/msw/wx_vc7_net.vcproj index d3f9892b80..d7456016a3 100644 --- a/build/msw/wx_vc7_net.vcproj +++ b/build/msw/wx_vc7_net.vcproj @@ -605,7 +605,7 @@ RelativePath="..\..\src\msw\gsocket.cpp"> + RelativePath="..\..\src\msw\sockmsw.cpp"> @@ -803,7 +803,7 @@ + RelativePath="..\..\include\wx\msw\private\sockmsw.h"> diff --git a/build/msw/wx_vc9_net.vcproj b/build/msw/wx_vc9_net.vcproj index f4ba10e6dc..29d0606915 100644 --- a/build/msw/wx_vc9_net.vcproj +++ b/build/msw/wx_vc9_net.vcproj @@ -840,7 +840,7 @@ > diff --git a/include/wx/msw/gsockmsw.h b/include/wx/msw/gsockmsw.h deleted file mode 100644 index d65e493b98..0000000000 --- a/include/wx/msw/gsockmsw.h +++ /dev/null @@ -1,72 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: wx/msw/gsockmsw.h -// Purpose: MSW-specific socket implementation -// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin -// Created: April 1997 -// Copyright: (C) 1999-1997, Guilhem Lavaux -// (C) 1999-2000, Guillermo Rodriguez Garcia -// (C) 2008 Vadim Zeitlin -// RCS_ID: $Id$ -// License: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -#ifndef _WX_MSW_GSOCKMSW_H_ -#define _WX_MSW_GSOCKMSW_H_ - -#include "wx/msw/wrapwin.h" - -#if defined(__CYGWIN__) - //CYGWIN gives annoying warning about runtime stuff if we don't do this -# define USE_SYS_TYPES_FD_SET -# include -#endif - -#if defined(__WXWINCE__) || defined(__CYGWIN__) - #include -#endif - -// ---------------------------------------------------------------------------- -// MSW-specific socket implementation -// ---------------------------------------------------------------------------- - -class wxSocketImplMSW : public wxSocketImpl -{ -public: - wxSocketImplMSW(wxSocketBase& wxsocket); - - virtual ~wxSocketImplMSW(); - - virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket); - - - int Read(void *buffer, int size); - int Write(const void *buffer, int size); - -private: - virtual wxSocketError DoHandleConnect(int ret); - virtual void DoClose(); - - virtual void UnblockAndRegisterWithEventLoop() - { - // no need to make the socket non-blocking, Install_Callback() will do - // it - wxSocketManager::Get()->Install_Callback(this); - } - - wxSocketError Input_Timeout(); - wxSocketError Output_Timeout(); - wxSocketError Connect_Timeout(); - int Recv_Stream(void *buffer, int size); - int Recv_Dgram(void *buffer, int size); - int Send_Stream(const void *buffer, int size); - int Send_Dgram(const void *buffer, int size); - - int m_msgnumber; - - friend class wxSocketMSWManager; - - DECLARE_NO_COPY_CLASS(wxSocketImplMSW) -}; - -#endif /* _WX_MSW_GSOCKMSW_H_ */ diff --git a/include/wx/msw/private/sockmsw.h b/include/wx/msw/private/sockmsw.h new file mode 100644 index 0000000000..d65e493b98 --- /dev/null +++ b/include/wx/msw/private/sockmsw.h @@ -0,0 +1,72 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: wx/msw/gsockmsw.h +// Purpose: MSW-specific socket implementation +// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia, Vadim Zeitlin +// Created: April 1997 +// Copyright: (C) 1999-1997, Guilhem Lavaux +// (C) 1999-2000, Guillermo Rodriguez Garcia +// (C) 2008 Vadim Zeitlin +// RCS_ID: $Id$ +// License: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + + +#ifndef _WX_MSW_GSOCKMSW_H_ +#define _WX_MSW_GSOCKMSW_H_ + +#include "wx/msw/wrapwin.h" + +#if defined(__CYGWIN__) + //CYGWIN gives annoying warning about runtime stuff if we don't do this +# define USE_SYS_TYPES_FD_SET +# include +#endif + +#if defined(__WXWINCE__) || defined(__CYGWIN__) + #include +#endif + +// ---------------------------------------------------------------------------- +// MSW-specific socket implementation +// ---------------------------------------------------------------------------- + +class wxSocketImplMSW : public wxSocketImpl +{ +public: + wxSocketImplMSW(wxSocketBase& wxsocket); + + virtual ~wxSocketImplMSW(); + + virtual wxSocketImpl *WaitConnection(wxSocketBase& wxsocket); + + + int Read(void *buffer, int size); + int Write(const void *buffer, int size); + +private: + virtual wxSocketError DoHandleConnect(int ret); + virtual void DoClose(); + + virtual void UnblockAndRegisterWithEventLoop() + { + // no need to make the socket non-blocking, Install_Callback() will do + // it + wxSocketManager::Get()->Install_Callback(this); + } + + wxSocketError Input_Timeout(); + wxSocketError Output_Timeout(); + wxSocketError Connect_Timeout(); + int Recv_Stream(void *buffer, int size); + int Recv_Dgram(void *buffer, int size); + int Send_Stream(const void *buffer, int size); + int Send_Dgram(const void *buffer, int size); + + int m_msgnumber; + + friend class wxSocketMSWManager; + + DECLARE_NO_COPY_CLASS(wxSocketImplMSW) +}; + +#endif /* _WX_MSW_GSOCKMSW_H_ */ diff --git a/src/msw/gsockmsw.cpp b/src/msw/gsockmsw.cpp deleted file mode 100644 index 4215428a26..0000000000 --- a/src/msw/gsockmsw.cpp +++ /dev/null @@ -1,461 +0,0 @@ -///////////////////////////////////////////////////////////////////////////// -// Name: src/msw/gsockmsw.cpp -// Purpose: MSW-specific socket support -// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia -// Created: April 1997 -// Copyright: (C) 1999-1997, Guilhem Lavaux -// (C) 1999-2000, Guillermo Rodriguez Garcia -// (C) 2008 Vadim Zeitlin -// RCS_ID: $Id$ -// License: wxWindows licence -///////////////////////////////////////////////////////////////////////////// - - -// For compilers that support precompilation, includes "wx.h". -#include "wx/wxprec.h" - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#if wxUSE_SOCKETS - -/* - * DONE: for WinCE we need to replace WSAAsyncSelect - * (Windows message-based notification of network events for a socket) - * with another mechanism. - * As WSAAsyncSelect is not present on WinCE, it now uses - * WSACreateEvent, WSAEventSelect, WSAWaitForMultipleEvents and WSAEnumNetworkEvents. - * When enabling eventhandling for a socket a new thread it created that keeps track of the events - * and posts a messageto the hidden window to use the standard message loop. - */ - -/* 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 - -#include "wx/private/socket.h" -#include "wx/apptrait.h" -#include "wx/link.h" - -wxFORCE_LINK_THIS_MODULE(gsockmsw) - -extern "C" WXDLLIMPEXP_BASE HINSTANCE wxGetInstance(); -#define INSTANCE wxGetInstance() - -#ifdef __WXWINCE__ -#include -#include "wx/msw/wince/net.h" -#include "wx/hashmap.h" -WX_DECLARE_HASH_MAP(int,bool,wxIntegerHash,wxIntegerEqual,SocketHash); -#endif - -#include -#include -#include -#include -#include - -#include - -#ifdef _MSC_VER -# pragma warning(default:4115) /* named type definition in parentheses */ -#endif - -#define CLASSNAME TEXT("_wxSocket_Internal_Window_Class") - -/* implemented in utils.cpp */ -extern "C" WXDLLIMPEXP_BASE HWND -wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc); - -/* Maximum number of different wxSocket objects at a given time. - * This value can be modified at will, but it CANNOT be greater - * than (0x7FFF - WM_USER + 1) - */ -#define MAXSOCKETS 1024 - -#if (MAXSOCKETS > (0x7FFF - WM_USER + 1)) -#error "MAXSOCKETS is too big!" -#endif - -#ifndef __WXWINCE__ -typedef int (PASCAL *WSAAsyncSelectFunc)(SOCKET,HWND,u_int,long); -#else -/* Typedef the needed function prototypes and the WSANETWORKEVENTS structure -*/ -typedef struct _WSANETWORKEVENTS { - long lNetworkEvents; - int iErrorCode[10]; -} WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS; -typedef HANDLE (PASCAL *WSACreateEventFunc)(); -typedef int (PASCAL *WSAEventSelectFunc)(SOCKET,HANDLE,long); -typedef int (PASCAL *WSAWaitForMultipleEventsFunc)(long,HANDLE,BOOL,long,BOOL); -typedef int (PASCAL *WSAEnumNetworkEventsFunc)(SOCKET,HANDLE,LPWSANETWORKEVENTS); -#endif //__WXWINCE__ - -LRESULT CALLBACK wxSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM); - -/* Global variables */ - -static HWND hWin; -static CRITICAL_SECTION critical; -static wxSocketImplMSW *socketList[MAXSOCKETS]; -static int firstAvailable; - -#ifndef __WXWINCE__ -static WSAAsyncSelectFunc gs_WSAAsyncSelect = NULL; -#else -static SocketHash socketHash; -static unsigned int currSocket; -HANDLE hThread[MAXSOCKETS]; -static WSACreateEventFunc gs_WSACreateEvent = NULL; -static WSAEventSelectFunc gs_WSAEventSelect = NULL; -static WSAWaitForMultipleEventsFunc gs_WSAWaitForMultipleEvents = NULL; -static WSAEnumNetworkEventsFunc gs_WSAEnumNetworkEvents = NULL; -/* This structure will be used to pass data on to the thread that handles socket events. -*/ -typedef struct thread_data{ - HWND hEvtWin; - unsigned long msgnumber; - unsigned long fd; - unsigned long lEvent; -}thread_data; -#endif - -static HMODULE gs_wsock32dll = 0; - - -#ifdef __WXWINCE__ -/* This thread handles socket events on WinCE using WSAEventSelect() as WSAAsyncSelect is not supported. -* When an event occures for the socket, it is checked what kind of event happend and the correct message gets posted -* so that the hidden window can handle it as it would in other MSW builds. -*/ -DWORD WINAPI SocketThread(LPVOID data) -{ - WSANETWORKEVENTS NetworkEvents; - thread_data* d = (thread_data *)data; - - HANDLE NetworkEvent = gs_WSACreateEvent(); - gs_WSAEventSelect(d->fd, NetworkEvent, d->lEvent); - - while(socketHash[d->fd] == true) - { - if ((gs_WSAWaitForMultipleEvents(1, &NetworkEvent, FALSE,INFINITE, FALSE)) == WAIT_FAILED) - { - printf("WSAWaitForMultipleEvents failed with error %d\n", WSAGetLastError()); - return 0; - } - if (gs_WSAEnumNetworkEvents(d->fd ,NetworkEvent, &NetworkEvents) == SOCKET_ERROR) - { - printf("WSAEnumNetworkEvents failed with error %d\n", WSAGetLastError()); - return 0; - } - - long flags = NetworkEvents.lNetworkEvents; - if (flags & FD_READ) - ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_READ); - if (flags & FD_WRITE) - ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_WRITE); - if (flags & FD_OOB) - ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_OOB); - if (flags & FD_ACCEPT) - ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_ACCEPT); - if (flags & FD_CONNECT) - ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CONNECT); - if (flags & FD_CLOSE) - ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CLOSE); - - } - gs_WSAEventSelect(d->fd, NetworkEvent, 0); - ExitThread(0); - return 0; -} -#endif - -// ---------------------------------------------------------------------------- -// MSW implementation of wxSocketManager -// ---------------------------------------------------------------------------- - -class wxSocketMSWManager : public wxSocketManager -{ -public: - virtual bool OnInit(); - virtual void OnExit(); - - virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) - { - return new wxSocketImplMSW(wxsocket); - } - virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event); - virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event); -}; - -/* Global initializers */ - -bool wxSocketMSWManager::OnInit() -{ - static LPCTSTR pclassname = NULL; - int i; - - /* Create internal window for event notifications */ - hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc); - if (!hWin) - return false; - - /* Initialize socket list */ - InitializeCriticalSection(&critical); - - for (i = 0; i < MAXSOCKETS; i++) - { - socketList[i] = NULL; - } - firstAvailable = 0; - - /* Load WSAAsyncSelect from wsock32.dll (we don't link against it - statically to avoid dependency on wsock32.dll for apps that don't use - sockets): */ -#ifndef __WXWINCE__ - gs_wsock32dll = LoadLibrary(wxT("wsock32.dll")); - if (!gs_wsock32dll) - return false; - gs_WSAAsyncSelect =(WSAAsyncSelectFunc)GetProcAddress(gs_wsock32dll, - "WSAAsyncSelect"); - if (!gs_WSAAsyncSelect) - return false; -#else -/* On WinCE we load ws2.dll which will provide the needed functions. -*/ - gs_wsock32dll = LoadLibrary(wxT("ws2.dll")); - if (!gs_wsock32dll) - return false; - gs_WSAEventSelect =(WSAEventSelectFunc)GetProcAddress(gs_wsock32dll, - wxT("WSAEventSelect")); - if (!gs_WSAEventSelect) - return false; - - gs_WSACreateEvent =(WSACreateEventFunc)GetProcAddress(gs_wsock32dll, - wxT("WSACreateEvent")); - if (!gs_WSACreateEvent) - return false; - - gs_WSAWaitForMultipleEvents =(WSAWaitForMultipleEventsFunc)GetProcAddress(gs_wsock32dll, - wxT("WSAWaitForMultipleEvents")); - if (!gs_WSAWaitForMultipleEvents) - return false; - - gs_WSAEnumNetworkEvents =(WSAEnumNetworkEventsFunc)GetProcAddress(gs_wsock32dll, - wxT("WSAEnumNetworkEvents")); - if (!gs_WSAEnumNetworkEvents) - return false; - - currSocket = 0; -#endif - - // finally initialize WinSock - WSADATA wsaData; - return WSAStartup((1 << 8) | 1, &wsaData) == 0; -} - -void wxSocketMSWManager::OnExit() -{ -#ifdef __WXWINCE__ -/* Delete the threads here */ - for(unsigned int i=0; i < currSocket; i++) - CloseHandle(hThread[i]); -#endif - /* Destroy internal window */ - DestroyWindow(hWin); - UnregisterClass(CLASSNAME, INSTANCE); - - /* Unlock wsock32.dll */ - if (gs_wsock32dll) - { - FreeLibrary(gs_wsock32dll); - gs_wsock32dll = 0; - } - - /* Delete critical section */ - DeleteCriticalSection(&critical); - - WSACleanup(); -} - -/* Per-socket GUI initialization / cleanup */ - -wxSocketImplMSW::wxSocketImplMSW(wxSocketBase& wxsocket) - : wxSocketImpl(wxsocket) -{ - /* Allocate a new message number for this socket */ - EnterCriticalSection(&critical); - - int i = firstAvailable; - while (socketList[i] != NULL) - { - i = (i + 1) % MAXSOCKETS; - - if (i == firstAvailable) /* abort! */ - { - LeaveCriticalSection(&critical); - m_msgnumber = 0; // invalid - return; - } - } - socketList[i] = this; - firstAvailable = (i + 1) % MAXSOCKETS; - m_msgnumber = (i + WM_USER); - - LeaveCriticalSection(&critical); -} - -wxSocketImplMSW::~wxSocketImplMSW() -{ - /* Remove the socket from the list */ - EnterCriticalSection(&critical); - - if ( m_msgnumber ) - { - // we need to remove any pending messages for this socket to avoid having - // them sent to a new socket which could reuse the same message number as - // soon as we destroy this one - MSG msg; - while ( ::PeekMessage(&msg, hWin, m_msgnumber, m_msgnumber, PM_REMOVE) ) - ; - - socketList[m_msgnumber - WM_USER] = NULL; - } - //else: the socket has never been created successfully - - LeaveCriticalSection(&critical); -} - -/* Windows proc for asynchronous event handling */ - -LRESULT CALLBACK wxSocket_Internal_WinProc(HWND hWnd, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - wxSocketImplMSW *socket; - wxSocketNotify event; - - if (uMsg >= WM_USER && uMsg <= (WM_USER + MAXSOCKETS - 1)) - { - EnterCriticalSection(&critical); - socket = socketList[(uMsg - WM_USER)]; - event = (wxSocketNotify) -1; - - /* Check that the socket still exists (it has not been - * destroyed) and for safety, check that the m_fd field - * is what we expect it to be. - */ - if ((socket != NULL) && ((WPARAM)socket->m_fd == wParam)) - { - switch WSAGETSELECTEVENT(lParam) - { - case FD_READ: event = wxSOCKET_INPUT; break; - case FD_WRITE: event = wxSOCKET_OUTPUT; break; - case FD_ACCEPT: event = wxSOCKET_CONNECTION; break; - case FD_CONNECT: - { - if (WSAGETSELECTERROR(lParam) != 0) - event = wxSOCKET_LOST; - else - event = wxSOCKET_CONNECTION; - break; - } - case FD_CLOSE: event = wxSOCKET_LOST; break; - } - - if (event != -1) - { - if (event == wxSOCKET_LOST) - socket->m_detected = wxSOCKET_LOST_FLAG; - else - socket->m_detected |= (1 << event); - } - } - - LeaveCriticalSection(&critical); - - if ( socket ) - socket->NotifyOnStateChange(event); - - return (LRESULT) 0; - } - else - return DefWindowProc(hWnd, uMsg, wParam, lParam); -} - -/* - * Enable all event notifications; we need to be notified of all - * events for internal processing, but we will only notify users - * when an appropriate callback function has been installed. - */ -void wxSocketMSWManager::Install_Callback(wxSocketImpl *socket_, - wxSocketNotify WXUNUSED(event)) -{ - wxSocketImplMSW * const socket = static_cast(socket_); - - if (socket->m_fd != INVALID_SOCKET) - { - /* 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); -#ifndef __WXWINCE__ - gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, lEvent); -#else -/* -* WinCE creates a thread for socket event handling. -* All needed parameters get passed through the thread_data structure. -*/ - - thread_data* d = new thread_data; - d->lEvent = lEvent; - d->hEvtWin = hWin; - d->msgnumber = socket->m_msgnumber; - d->fd = socket->m_fd; - socketHash[socket->m_fd] = true; - hThread[currSocket++] = CreateThread(NULL, 0, &SocketThread,(LPVOID)d, 0, NULL); -#endif - } -} - -/* - * Disable event notifications (used when shutting down the socket) - */ -void wxSocketMSWManager::Uninstall_Callback(wxSocketImpl *socket_, - wxSocketNotify WXUNUSED(event)) -{ - wxSocketImplMSW * const socket = static_cast(socket_); - - if (socket->m_fd != INVALID_SOCKET) - { -#ifndef __WXWINCE__ - gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, 0); -#else - //Destroy the thread - socketHash[socket->m_fd] = false; -#endif - } -} - -// set the wxBase variable to point to our wxSocketManager implementation -// -// see comments in wx/apptrait.h for the explanation of why do we do it -// like this -static struct ManagerSetter -{ - ManagerSetter() - { - static wxSocketMSWManager s_manager; - wxAppTraits::SetDefaultSocketManager(&s_manager); - } -} gs_managerSetter; - -#endif // wxUSE_SOCKETS diff --git a/src/msw/sockmsw.cpp b/src/msw/sockmsw.cpp new file mode 100644 index 0000000000..4215428a26 --- /dev/null +++ b/src/msw/sockmsw.cpp @@ -0,0 +1,461 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: src/msw/gsockmsw.cpp +// Purpose: MSW-specific socket support +// Authors: Guilhem Lavaux, Guillermo Rodriguez Garcia +// Created: April 1997 +// Copyright: (C) 1999-1997, Guilhem Lavaux +// (C) 1999-2000, Guillermo Rodriguez Garcia +// (C) 2008 Vadim Zeitlin +// RCS_ID: $Id$ +// License: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + + +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +#if wxUSE_SOCKETS + +/* + * DONE: for WinCE we need to replace WSAAsyncSelect + * (Windows message-based notification of network events for a socket) + * with another mechanism. + * As WSAAsyncSelect is not present on WinCE, it now uses + * WSACreateEvent, WSAEventSelect, WSAWaitForMultipleEvents and WSAEnumNetworkEvents. + * When enabling eventhandling for a socket a new thread it created that keeps track of the events + * and posts a messageto the hidden window to use the standard message loop. + */ + +/* 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 + +#include "wx/private/socket.h" +#include "wx/apptrait.h" +#include "wx/link.h" + +wxFORCE_LINK_THIS_MODULE(gsockmsw) + +extern "C" WXDLLIMPEXP_BASE HINSTANCE wxGetInstance(); +#define INSTANCE wxGetInstance() + +#ifdef __WXWINCE__ +#include +#include "wx/msw/wince/net.h" +#include "wx/hashmap.h" +WX_DECLARE_HASH_MAP(int,bool,wxIntegerHash,wxIntegerEqual,SocketHash); +#endif + +#include +#include +#include +#include +#include + +#include + +#ifdef _MSC_VER +# pragma warning(default:4115) /* named type definition in parentheses */ +#endif + +#define CLASSNAME TEXT("_wxSocket_Internal_Window_Class") + +/* implemented in utils.cpp */ +extern "C" WXDLLIMPEXP_BASE HWND +wxCreateHiddenWindow(LPCTSTR *pclassname, LPCTSTR classname, WNDPROC wndproc); + +/* Maximum number of different wxSocket objects at a given time. + * This value can be modified at will, but it CANNOT be greater + * than (0x7FFF - WM_USER + 1) + */ +#define MAXSOCKETS 1024 + +#if (MAXSOCKETS > (0x7FFF - WM_USER + 1)) +#error "MAXSOCKETS is too big!" +#endif + +#ifndef __WXWINCE__ +typedef int (PASCAL *WSAAsyncSelectFunc)(SOCKET,HWND,u_int,long); +#else +/* Typedef the needed function prototypes and the WSANETWORKEVENTS structure +*/ +typedef struct _WSANETWORKEVENTS { + long lNetworkEvents; + int iErrorCode[10]; +} WSANETWORKEVENTS, FAR * LPWSANETWORKEVENTS; +typedef HANDLE (PASCAL *WSACreateEventFunc)(); +typedef int (PASCAL *WSAEventSelectFunc)(SOCKET,HANDLE,long); +typedef int (PASCAL *WSAWaitForMultipleEventsFunc)(long,HANDLE,BOOL,long,BOOL); +typedef int (PASCAL *WSAEnumNetworkEventsFunc)(SOCKET,HANDLE,LPWSANETWORKEVENTS); +#endif //__WXWINCE__ + +LRESULT CALLBACK wxSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM); + +/* Global variables */ + +static HWND hWin; +static CRITICAL_SECTION critical; +static wxSocketImplMSW *socketList[MAXSOCKETS]; +static int firstAvailable; + +#ifndef __WXWINCE__ +static WSAAsyncSelectFunc gs_WSAAsyncSelect = NULL; +#else +static SocketHash socketHash; +static unsigned int currSocket; +HANDLE hThread[MAXSOCKETS]; +static WSACreateEventFunc gs_WSACreateEvent = NULL; +static WSAEventSelectFunc gs_WSAEventSelect = NULL; +static WSAWaitForMultipleEventsFunc gs_WSAWaitForMultipleEvents = NULL; +static WSAEnumNetworkEventsFunc gs_WSAEnumNetworkEvents = NULL; +/* This structure will be used to pass data on to the thread that handles socket events. +*/ +typedef struct thread_data{ + HWND hEvtWin; + unsigned long msgnumber; + unsigned long fd; + unsigned long lEvent; +}thread_data; +#endif + +static HMODULE gs_wsock32dll = 0; + + +#ifdef __WXWINCE__ +/* This thread handles socket events on WinCE using WSAEventSelect() as WSAAsyncSelect is not supported. +* When an event occures for the socket, it is checked what kind of event happend and the correct message gets posted +* so that the hidden window can handle it as it would in other MSW builds. +*/ +DWORD WINAPI SocketThread(LPVOID data) +{ + WSANETWORKEVENTS NetworkEvents; + thread_data* d = (thread_data *)data; + + HANDLE NetworkEvent = gs_WSACreateEvent(); + gs_WSAEventSelect(d->fd, NetworkEvent, d->lEvent); + + while(socketHash[d->fd] == true) + { + if ((gs_WSAWaitForMultipleEvents(1, &NetworkEvent, FALSE,INFINITE, FALSE)) == WAIT_FAILED) + { + printf("WSAWaitForMultipleEvents failed with error %d\n", WSAGetLastError()); + return 0; + } + if (gs_WSAEnumNetworkEvents(d->fd ,NetworkEvent, &NetworkEvents) == SOCKET_ERROR) + { + printf("WSAEnumNetworkEvents failed with error %d\n", WSAGetLastError()); + return 0; + } + + long flags = NetworkEvents.lNetworkEvents; + if (flags & FD_READ) + ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_READ); + if (flags & FD_WRITE) + ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_WRITE); + if (flags & FD_OOB) + ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_OOB); + if (flags & FD_ACCEPT) + ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_ACCEPT); + if (flags & FD_CONNECT) + ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CONNECT); + if (flags & FD_CLOSE) + ::PostMessage(d->hEvtWin, d->msgnumber,d->fd, FD_CLOSE); + + } + gs_WSAEventSelect(d->fd, NetworkEvent, 0); + ExitThread(0); + return 0; +} +#endif + +// ---------------------------------------------------------------------------- +// MSW implementation of wxSocketManager +// ---------------------------------------------------------------------------- + +class wxSocketMSWManager : public wxSocketManager +{ +public: + virtual bool OnInit(); + virtual void OnExit(); + + virtual wxSocketImpl *CreateSocket(wxSocketBase& wxsocket) + { + return new wxSocketImplMSW(wxsocket); + } + virtual void Install_Callback(wxSocketImpl *socket, wxSocketNotify event); + virtual void Uninstall_Callback(wxSocketImpl *socket, wxSocketNotify event); +}; + +/* Global initializers */ + +bool wxSocketMSWManager::OnInit() +{ + static LPCTSTR pclassname = NULL; + int i; + + /* Create internal window for event notifications */ + hWin = wxCreateHiddenWindow(&pclassname, CLASSNAME, wxSocket_Internal_WinProc); + if (!hWin) + return false; + + /* Initialize socket list */ + InitializeCriticalSection(&critical); + + for (i = 0; i < MAXSOCKETS; i++) + { + socketList[i] = NULL; + } + firstAvailable = 0; + + /* Load WSAAsyncSelect from wsock32.dll (we don't link against it + statically to avoid dependency on wsock32.dll for apps that don't use + sockets): */ +#ifndef __WXWINCE__ + gs_wsock32dll = LoadLibrary(wxT("wsock32.dll")); + if (!gs_wsock32dll) + return false; + gs_WSAAsyncSelect =(WSAAsyncSelectFunc)GetProcAddress(gs_wsock32dll, + "WSAAsyncSelect"); + if (!gs_WSAAsyncSelect) + return false; +#else +/* On WinCE we load ws2.dll which will provide the needed functions. +*/ + gs_wsock32dll = LoadLibrary(wxT("ws2.dll")); + if (!gs_wsock32dll) + return false; + gs_WSAEventSelect =(WSAEventSelectFunc)GetProcAddress(gs_wsock32dll, + wxT("WSAEventSelect")); + if (!gs_WSAEventSelect) + return false; + + gs_WSACreateEvent =(WSACreateEventFunc)GetProcAddress(gs_wsock32dll, + wxT("WSACreateEvent")); + if (!gs_WSACreateEvent) + return false; + + gs_WSAWaitForMultipleEvents =(WSAWaitForMultipleEventsFunc)GetProcAddress(gs_wsock32dll, + wxT("WSAWaitForMultipleEvents")); + if (!gs_WSAWaitForMultipleEvents) + return false; + + gs_WSAEnumNetworkEvents =(WSAEnumNetworkEventsFunc)GetProcAddress(gs_wsock32dll, + wxT("WSAEnumNetworkEvents")); + if (!gs_WSAEnumNetworkEvents) + return false; + + currSocket = 0; +#endif + + // finally initialize WinSock + WSADATA wsaData; + return WSAStartup((1 << 8) | 1, &wsaData) == 0; +} + +void wxSocketMSWManager::OnExit() +{ +#ifdef __WXWINCE__ +/* Delete the threads here */ + for(unsigned int i=0; i < currSocket; i++) + CloseHandle(hThread[i]); +#endif + /* Destroy internal window */ + DestroyWindow(hWin); + UnregisterClass(CLASSNAME, INSTANCE); + + /* Unlock wsock32.dll */ + if (gs_wsock32dll) + { + FreeLibrary(gs_wsock32dll); + gs_wsock32dll = 0; + } + + /* Delete critical section */ + DeleteCriticalSection(&critical); + + WSACleanup(); +} + +/* Per-socket GUI initialization / cleanup */ + +wxSocketImplMSW::wxSocketImplMSW(wxSocketBase& wxsocket) + : wxSocketImpl(wxsocket) +{ + /* Allocate a new message number for this socket */ + EnterCriticalSection(&critical); + + int i = firstAvailable; + while (socketList[i] != NULL) + { + i = (i + 1) % MAXSOCKETS; + + if (i == firstAvailable) /* abort! */ + { + LeaveCriticalSection(&critical); + m_msgnumber = 0; // invalid + return; + } + } + socketList[i] = this; + firstAvailable = (i + 1) % MAXSOCKETS; + m_msgnumber = (i + WM_USER); + + LeaveCriticalSection(&critical); +} + +wxSocketImplMSW::~wxSocketImplMSW() +{ + /* Remove the socket from the list */ + EnterCriticalSection(&critical); + + if ( m_msgnumber ) + { + // we need to remove any pending messages for this socket to avoid having + // them sent to a new socket which could reuse the same message number as + // soon as we destroy this one + MSG msg; + while ( ::PeekMessage(&msg, hWin, m_msgnumber, m_msgnumber, PM_REMOVE) ) + ; + + socketList[m_msgnumber - WM_USER] = NULL; + } + //else: the socket has never been created successfully + + LeaveCriticalSection(&critical); +} + +/* Windows proc for asynchronous event handling */ + +LRESULT CALLBACK wxSocket_Internal_WinProc(HWND hWnd, + UINT uMsg, + WPARAM wParam, + LPARAM lParam) +{ + wxSocketImplMSW *socket; + wxSocketNotify event; + + if (uMsg >= WM_USER && uMsg <= (WM_USER + MAXSOCKETS - 1)) + { + EnterCriticalSection(&critical); + socket = socketList[(uMsg - WM_USER)]; + event = (wxSocketNotify) -1; + + /* Check that the socket still exists (it has not been + * destroyed) and for safety, check that the m_fd field + * is what we expect it to be. + */ + if ((socket != NULL) && ((WPARAM)socket->m_fd == wParam)) + { + switch WSAGETSELECTEVENT(lParam) + { + case FD_READ: event = wxSOCKET_INPUT; break; + case FD_WRITE: event = wxSOCKET_OUTPUT; break; + case FD_ACCEPT: event = wxSOCKET_CONNECTION; break; + case FD_CONNECT: + { + if (WSAGETSELECTERROR(lParam) != 0) + event = wxSOCKET_LOST; + else + event = wxSOCKET_CONNECTION; + break; + } + case FD_CLOSE: event = wxSOCKET_LOST; break; + } + + if (event != -1) + { + if (event == wxSOCKET_LOST) + socket->m_detected = wxSOCKET_LOST_FLAG; + else + socket->m_detected |= (1 << event); + } + } + + LeaveCriticalSection(&critical); + + if ( socket ) + socket->NotifyOnStateChange(event); + + return (LRESULT) 0; + } + else + return DefWindowProc(hWnd, uMsg, wParam, lParam); +} + +/* + * Enable all event notifications; we need to be notified of all + * events for internal processing, but we will only notify users + * when an appropriate callback function has been installed. + */ +void wxSocketMSWManager::Install_Callback(wxSocketImpl *socket_, + wxSocketNotify WXUNUSED(event)) +{ + wxSocketImplMSW * const socket = static_cast(socket_); + + if (socket->m_fd != INVALID_SOCKET) + { + /* 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); +#ifndef __WXWINCE__ + gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, lEvent); +#else +/* +* WinCE creates a thread for socket event handling. +* All needed parameters get passed through the thread_data structure. +*/ + + thread_data* d = new thread_data; + d->lEvent = lEvent; + d->hEvtWin = hWin; + d->msgnumber = socket->m_msgnumber; + d->fd = socket->m_fd; + socketHash[socket->m_fd] = true; + hThread[currSocket++] = CreateThread(NULL, 0, &SocketThread,(LPVOID)d, 0, NULL); +#endif + } +} + +/* + * Disable event notifications (used when shutting down the socket) + */ +void wxSocketMSWManager::Uninstall_Callback(wxSocketImpl *socket_, + wxSocketNotify WXUNUSED(event)) +{ + wxSocketImplMSW * const socket = static_cast(socket_); + + if (socket->m_fd != INVALID_SOCKET) + { +#ifndef __WXWINCE__ + gs_WSAAsyncSelect(socket->m_fd, hWin, socket->m_msgnumber, 0); +#else + //Destroy the thread + socketHash[socket->m_fd] = false; +#endif + } +} + +// set the wxBase variable to point to our wxSocketManager implementation +// +// see comments in wx/apptrait.h for the explanation of why do we do it +// like this +static struct ManagerSetter +{ + ManagerSetter() + { + static wxSocketMSWManager s_manager; + wxAppTraits::SetDefaultSocketManager(&s_manager); + } +} gs_managerSetter; + +#endif // wxUSE_SOCKETS