- Added lots of comments to both code and headers.
- Restructured some parts of Unix version. Will try to merge with MSW soon
    and have a gsockcmn.c
- Fixed a potential bug in the MSW version of GSocket_Connect when in blocking mode.
- Fixed a potential (different) bug in the corresponding Unix version.
- Now WaitConnection correctly fills out the peer address field.
- Added GAddress_INET_SetAnyAddress (sets address to INADDR_ANY)
- Default address is INADDR_ANY again, not INADDR_NONE; failed hostname lookups
    sets the address to INADDR_NONE.
wxSocket:
- Added some safety checks to the wxPostEvent stuff.
wxIPV4address:
- Added a wxIPV4address::AnyAddress method.
wxIPCConnection and co.:
- Servers binds to INADDR_ANY, instead of binding to localhost.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
	
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* -------------------------------------------------------------------------
 | |
|  * Project: GSocket (Generic Socket) for WX
 | |
|  * Name:    gsockmsw.h
 | |
|  * Purpose: GSocket MSW header
 | |
|  * CVSID:   $Id$
 | |
|  * -------------------------------------------------------------------------
 | |
|  */
 | |
| 
 | |
| #ifndef __GSOCK_MSW_H
 | |
| #define __GSOCK_MSW_H
 | |
| 
 | |
| #ifndef __GSOCKET_STANDALONE__
 | |
| #include "wx/setup.h"
 | |
| #endif
 | |
| 
 | |
| #if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
 | |
| 
 | |
| #ifndef __GSOCKET_STANDALONE__
 | |
| #include "wx/gsocket.h"
 | |
| #else
 | |
| #include "gsocket.h"
 | |
| #endif
 | |
| 
 | |
| #include <windows.h>
 | |
| #include <winsock.h>
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| /* Definition of GSocket */
 | |
| struct _GSocket
 | |
| {
 | |
|   SOCKET m_fd;
 | |
|   GAddress *m_local;
 | |
|   GAddress *m_peer;
 | |
|   GSocketError m_error;
 | |
| 
 | |
|   /* Attributes */
 | |
|   bool m_non_blocking;
 | |
|   bool m_server;
 | |
|   bool m_stream;
 | |
|   bool m_oriented;
 | |
|   struct timeval m_timeout;
 | |
| 
 | |
|   /* Callbacks */
 | |
|   GSocketEventFlags m_detected;
 | |
|   GSocketCallback m_cbacks[GSOCK_MAX_EVENT];
 | |
|   char *m_data[GSOCK_MAX_EVENT];
 | |
|   int m_msgnumber;
 | |
| };
 | |
| 
 | |
| /* Definition of GAddress */
 | |
| struct _GAddress
 | |
| {
 | |
|   struct sockaddr *m_addr;
 | |
|   size_t m_len;
 | |
| 
 | |
|   GAddressType m_family;
 | |
|   int m_realfamily;
 | |
| 
 | |
|   GSocketError m_error;
 | |
| };
 | |
| 
 | |
| 
 | |
| /* Input / output */
 | |
| 
 | |
| GSocketError _GSocket_Input_Timeout(GSocket *socket);
 | |
| GSocketError _GSocket_Output_Timeout(GSocket *socket);
 | |
| GSocketError _GSocket_Connect_Timeout(GSocket *socket);
 | |
| int _GSocket_Recv_Stream(GSocket *socket, char *buffer, int size);
 | |
| int _GSocket_Recv_Dgram(GSocket *socket, char *buffer, int size);
 | |
| int _GSocket_Send_Stream(GSocket *socket, const char *buffer, int size);
 | |
| int _GSocket_Send_Dgram(GSocket *socket, const char *buffer, int size);
 | |
| 
 | |
| /* Callbacks */
 | |
| 
 | |
| void _GSocket_Enable_Events(GSocket *socket);
 | |
| void _GSocket_Disable_Events(GSocket *socket);
 | |
| LRESULT CALLBACK _GSocket_Internal_WinProc(HWND, UINT, WPARAM, LPARAM);
 | |
| 
 | |
| /* GAddress */
 | |
| 
 | |
| GSocketError _GAddress_translate_from(GAddress *address,
 | |
|                                       struct sockaddr *addr, int len);
 | |
| GSocketError _GAddress_translate_to  (GAddress *address,
 | |
|                                       struct sockaddr **addr, int *len);
 | |
| GSocketError _GAddress_Init_INET(GAddress *address);
 | |
| GSocketError _GAddress_Init_UNIX(GAddress *address);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif  /* wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__) */
 | |
| 
 | |
| #endif  /* __GSOCK_MSW_H */
 |