diff options
Diffstat (limited to 'include/socketengine_iocp.h')
-rw-r--r-- | include/socketengine_iocp.h | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/include/socketengine_iocp.h b/include/socketengine_iocp.h index 615c44fd7..5de7af03f 100644 --- a/include/socketengine_iocp.h +++ b/include/socketengine_iocp.h @@ -14,7 +14,7 @@ #ifndef __SOCKETENGINE_IOCP__ #define __SOCKETENGINE_IOCP__ -#define READ_BUFFER_SIZE 500 +#define READ_BUFFER_SIZE 600 #define USING_IOCP 1 #include "inspircd_config.h" @@ -37,7 +37,11 @@ class Overlapped public: OVERLAPPED m_overlap; SocketIOEvent m_event; - int m_params; +#ifdef WIN64 + unsigned __int64 m_params; +#else + unsigned long m_params; +#endif Overlapped(SocketIOEvent ev, int params) : m_event(ev), m_params(params) { @@ -45,6 +49,14 @@ class Overlapped } }; +struct udp_overlap +{ + unsigned char udp_buffer[600]; + unsigned long udp_len; + sockaddr udp_sockaddr[2]; + unsigned long udp_sockaddr_len; +}; + struct accept_overlap { int socket; @@ -173,6 +185,11 @@ public: * @return A pointer to the event handler, or NULL */ EventHandler* GetIntRef(int fd); + + /** Holds the preallocated buffer passed to WSARecvFrom
+ * function. Yes, I know, it's a dirty hack.
+ */
+ udp_overlap * udp_ov;
}; //typedef void(*OpHandler)(EventHandler) |