Vadim Zeitlin
5ab2f2575d
make sure events are enabled in DoWait() before starting to wait for them ( closes #10396 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58250 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-20 23:53:35 +00:00
Francesco Montorsi
4f61df823f
fix wxMSW shared builds
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-13 00:38:38 +00:00
Francesco Montorsi
54e757fc96
ensure correct linking of the socket manager initializer for static builds of wxWidgets
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 23:14:17 +00:00
Vadim Zeitlin
3c77890141
add more flexible and safer template Connect() overloads ( #10000 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58039 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 14:26:13 +00:00
Jouk Jansen
66034aba2e
Fixing/Testing sockets on OpenVMS
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58032 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-12 09:06:36 +00:00
Vadim Zeitlin
0ed00ab5be
restore code preventing the events being generated from inside our own DoRead/Write() mistakenly removed in r57796
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-03 02:20:25 +00:00
Vadim Zeitlin
ebbf740764
streamline handling of wxSOCKET_LOST in DoWait()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57798 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 22:07:45 +00:00
Vadim Zeitlin
f26d81383f
no changes, just reformat/indent consistently
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 21:58:09 +00:00
Vadim Zeitlin
df21920b80
disable the events when we get a notification about socket being ready for IO and reenable them later after performing the IO in the Unix version to avoid continuous flood of ready notifications
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 21:53:30 +00:00
Vadim Zeitlin
365b8793d3
use guard classes automatically restoring the old state in their dtor instead of manually changing wxSocketBase::m_reading/writing/flags
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57778 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 17:34:16 +00:00
Vadim Zeitlin
6f405b31b2
fix WaitForXXX() to work as before: if the socket is already ready for reading/writing they should return immediately
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57725 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-01-02 01:00:40 +00:00
Vadim Zeitlin
f17632706e
handle loss of connection explicitly in Read/Write() to fix socket IO under Unix after the last change
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 15:07:04 +00:00
Vadim Zeitlin
f539560019
try reading/writing to/from the socket before blocking on it, this seems more efficient and is required to avoid blocking indefinitely under Windows
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57668 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 14:50:23 +00:00
Vadim Zeitlin
9588640d19
fix handling of errors due to the other end of the socket being closed
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57661 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 12:52:38 +00:00
Vadim Zeitlin
b67397a779
added wxSocket::ShutdownOutput() ( closes #9229 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-30 11:27:41 +00:00
Vadim Zeitlin
c9bccf239c
replaced unweildy GAddress functions with wxSockAddressImpl class, similarly to GSocket -> wxSocketImpl transition; share more code between IPv4 and IPv6 branches
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57635 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-29 14:35:48 +00:00
Vadim Zeitlin
14372de82e
move Read/Write() to common code, there was almost nothing platform-specific in it
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 22:49:46 +00:00
Vadim Zeitlin
5e9238f9c6
remove the badle defined and apparently unnecessary wxSocketImpl::m_detected field
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57608 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 21:48:42 +00:00
Vadim Zeitlin
64b1cea09a
got rid of wxSocketBase::m_error which could get out of sync with wxSocketImpl::m_error -- one error indicator is enough
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57602 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 17:56:03 +00:00
Vadim Zeitlin
2b036c4b23
our sockets are always non-blocking anyhow so throw away all the code dealing with checking if they're blocking; also merge Unix/Win32 versions of connect() and accept() handling as they were almost identical except for the different checking of the return value which was factored out into a platform-specific GetLastError() function
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57600 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 17:15:22 +00:00
Vadim Zeitlin
437a8892a1
set m_closed to true when we get connection lost notification
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 11:39:46 +00:00
Vadim Zeitlin
735ac2bc94
also initialize option value length before calling getsockopt()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57577 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 00:21:28 +00:00
Vadim Zeitlin
f16ba4bb7e
initialize name length before calling getsockname()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57576 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-27 00:19:37 +00:00
Vadim Zeitlin
00414faf34
use DispatchTimeout() and/or select() with timeout instead of polling loop in wxSocket::DoWait()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57572 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 22:50:50 +00:00
Vadim Zeitlin
22185a1f15
remove m_use_events from Unix wxSocket implementation, we always need asynchronous socket notifications now (and this was always the case under Windows anyhow), even if we don't always generate wx events corresponding to them
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 20:20:46 +00:00
Vadim Zeitlin
2f1c8faf2c
we don't need to use select() in DoWait() if we're receiving notifications about changes on our socket anyhow, this makes the code less efficient and, most importantly, much more confusing than necessary
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 14:39:04 +00:00
Vadim Zeitlin
5c1193e090
remember the events we were notified about in OnRequest() (not used yet but necessary for upcoming changes)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57565 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-26 14:33:52 +00:00
Vadim Zeitlin
5b90e570c9
use INVALID_SOCKET instead of -1 to avoid signed/unsigned comparison warning
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57559 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 20:28:14 +00:00
Vadim Zeitlin
c6b1063250
refactor Input/Output_Timeout: don't duplicate the same code in MSW/Unix code and also don't duplicate it for input and output, one function is enough for both
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57558 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-12-25 20:27:35 +00:00
Vadim Zeitlin
54cb21d692
remove wxSocketManager::CreateSocket() function, we don't need to have different wxSocketImpl implementation for the same platform, all the differences between console and GUI applications are abstracted by wxSocketManager::Install/Uninstall_Callback() methods
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 15:06:50 +00:00
Vadim Zeitlin
6091364135
rename various gsock* files to sock* (except for MSW where this will be done later)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 13:04:47 +00:00
Vadim Zeitlin
51fe4b60ab
Streamline wxSocket code: wxSocketBase now uses wxSocketImpl (previously known
...
as GSocket) which is a base class with various wxSocketImplXXX implementations
provided by different wxSocketManagers.
Share more code between ports (still not finished).
Refactor some code inside wxSocketImpl itself to be less redundant and fixed a
couple of minor bugs in the process.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56994 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-28 12:47:07 +00:00
Vadim Zeitlin
f0fbbe2364
trying to resolve GSocketManager API mess: the meaning of Install/Uninstall_Callback() and Enable/Disable_Events() has diverged in different ports and didn't make any sense any more; merge them in a single function (with still differing semantics though); also added Close_Socket()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56964 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-25 13:33:07 +00:00
Vadim Zeitlin
87c0312a66
use struct timeval and not a long to store socket timeout under Unix too
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56940 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 13:39:12 +00:00
Vadim Zeitlin
025644120d
move more socket functions common to Winsock and BSD implementations to common code
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56938 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 13:30:42 +00:00
Vadim Zeitlin
5b8cadd2ba
remove unused any more wx_socket_callback()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56936 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 13:18:43 +00:00
Vadim Zeitlin
53a161e101
continuation of GSocket/wxSocket merge: always create GSocket associated to a wxSocket instead of (always) doing it using a separate call later; remove support for user callbacks which wasn't implemented in Windows version and deprecated since 10 years or so
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56934 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 13:12:46 +00:00
Vadim Zeitlin
40e7c0b913
compilation fixes for Unix after moving wxFD_XXX macros from wx/unix/private.h
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 01:52:20 +00:00
Vadim Zeitlin
eb97543d28
don't duplicate GSocket creation/destruction and shutdown code in BSD and Winsock implementations
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56926 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 01:44:50 +00:00
Vadim Zeitlin
e6f466082e
fix timeout value for wxDatagramSocket: was off by a factor of 1000
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 01:15:44 +00:00
Vadim Zeitlin
f0db5d7587
do not require a running event loop, even under MSW, for the sockets to work: if the user code doesn't use events there is no reason for it to run the event loop, especially as it's not needed under the other platforms; instead use the same Select() implementation as under Unix under MSW too and, to avoid duplicating it, put it into the new GSocketBase class
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56923 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-23 00:11:09 +00:00
Vadim Zeitlin
cc0972a251
no real changes, just also rename _Read/_Write() to DoRead/DoWrite() and clean them a little more too
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56277 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-13 13:24:48 +00:00
Vadim Zeitlin
60ee017274
Cleanup of wxSocket::_Wait():
...
- Rename to DoWait() to avoid symbols starting with underscores.
- Added comments explaining how does it work.
- Remove the pointless timeout manipulations: GSocket::Select() doesn't
use timeout (any more?) anyhow.
Also pass GSOCK_LOST_FLAG to DoWait() from WaitForWrite() for the same reasons
it is done in WaitForRead().
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56275 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-13 13:00:49 +00:00
Vadim Zeitlin
c2116a3579
no changes at all, just reformatted to use consistent indentation before the upcoming real changes
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56259 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-12 23:04:33 +00:00
Vadim Zeitlin
b8d1915daf
use the currently active event loop for the event dispatching instead of wxYield(), this allows to create local event loops when using non-blocking sockets; assert if there is no active event loop under MSW as sockets won't work without it
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56257 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-12 22:55:14 +00:00
Vadim Zeitlin
c91574928d
add wxSocket::IsClosed(), use it to implement Eof() in wxSocketStream
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54590 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-12 02:28:12 +00:00
Vadim Zeitlin
72ac4e888a
take const address objects in wxSocketClient::Connect() and wxSocketBase::SetLocal()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54504 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-06 02:21:39 +00:00
Vadim Zeitlin
089b23d028
initialize m_initial{Recv,Send}BufferSize in wxSocketClient ctor (patch 1905981)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52526 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-03-15 02:10:49 +00:00
Vadim Zeitlin
2804f77d88
more socket cleanup to allow using wxSocket from both wxBase and wxCore (replaces patch 1756260)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50831 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-19 16:45:08 +00:00
Paul Cornett
204abcd474
remove unneccessary header dependencies on wx/thread.h
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-03 02:55:14 +00:00