extern "C" {
#endif
-typedef void ( *TCPReadEventHandler )( TCPSocket * sock );
+
typedef void ( *TCPUserCallback )();
struct TCPSocket_struct
{
TCPSocketFlags flags; // MUST BE FIRST FIELD -- mDNSCore expects every TCPSocket_struct to begin with TCPSocketFlags flags
SOCKET fd;
- TCPReadEventHandler readEventHandler;
- HANDLE connectEvent;
BOOL connected;
TCPUserCallback userCallback;
void * userContext;
- DWORD lastError;
- BOOL closed;\r
- OVERLAPPED overlapped;
- WSABUF wbuf;
- uint8_t buf[ 4192 ];
- uint8_t * bptr;
- uint8_t * eptr;
+ BOOL closed;
mDNS * m;
};
struct UDPSocket_struct
{
- mDNSIPPort port; // MUST BE FIRST FIELD -- mDNSCoreReceive expects every UDPSocket_struct to begin with mDNSIPPort port
- mDNSAddr addr; // This is initialized by our code. If we don't get the
- // dstAddr from WSARecvMsg we use this value instead.
- SOCKET fd;
- LPFN_WSARECVMSG recvMsgPtr;
- OVERLAPPED overlapped;
- WSAMSG wmsg;
- WSABUF wbuf;
- DNSMessage packet;
- uint8_t controlBuffer[ 128 ];
- struct sockaddr_storage srcAddr; // This is filled in by the WSARecv* function
- INT srcAddrLen; // See above
- struct mDNSInterfaceData * ifd;
- UDPSocket * next;
- mDNS * m;
-};
-
-
-typedef void ( *SocketEventHandler )( mDNS * const inMDNS, void * v );
-
-
-typedef struct SocketEvent
-{
- void * sock;
- SocketEventHandler handler;
- struct SocketEvent * next;
-} SocketEvent;
-
-
-typedef struct TCPSocketEvent
-{
- struct SocketEvent super;
- DWORD error;
- DWORD bytesTransferred;
- uint8_t buf[ 4192 ];
-} TCPSocketEvent;
-
-
-typedef struct UDPSocketEvent
-{
- struct SocketEvent super;
- mDNSInterfaceID iid;
+ mDNSIPPort port; // MUST BE FIRST FIELD -- mDNSCoreReceive expects every UDPSocket_struct to begin with mDNSIPPort port
+ mDNSAddr addr; // This is initialized by our code. If we don't get the
+ // dstAddr from WSARecvMsg we use this value instead.
+ SOCKET fd;
+ LPFN_WSARECVMSG recvMsgPtr;
DNSMessage packet;
- mDNSu8 * end;
- mDNSAddr srcAddr;
- mDNSIPPort srcPort;
- mDNSAddr dstAddr;
- mDNSIPPort dstPort;
-} UDPSocketEvent;
-
+ struct mDNSInterfaceData *ifd;
+ UDPSocket *next;
+ mDNS *m;
+};
//---------------------------------------------------------------------------------------------------------------------------
};
-//---------------------------------------------------------------------------------------------------------------------------
-/*! @typedef RegisterWaitableEventHandler
-*/
-typedef void (*RegisterWaitableEventHandler)(mDNS * const inMDNS, HANDLE event, void * context );
-
-//---------------------------------------------------------------------------------------------------------------------------
-/*! @typedef RegisterWaitableEventFunc
-*/
-typedef mStatus (*RegisterWaitableEventFunc)(mDNS * const inMDNS, HANDLE event, void * context, RegisterWaitableEventHandler handler );
-
-//---------------------------------------------------------------------------------------------------------------------------
-/*! @typedef UnregisterWaitableEventHandler
-*/
-typedef void (*UnregisterWaitableEventFunc)(mDNS * const inMDNS, HANDLE event );
-
//---------------------------------------------------------------------------------------------------------------------------
/*! @typedef ReportStatusFunc
*/
HANDLE mainThread;
HANDLE checkFileSharesTimer;
mDNSs32 checkFileSharesTimeout;
- RegisterWaitableEventFunc registerWaitableEventFunc;
- UnregisterWaitableEventFunc unregisterWaitableEventFunc;
ReportStatusFunc reportStatusFunc;
time_t nextDHCPLeaseExpires;
char nbname[ 32 ];
mDNSInterfaceData * inactiveInterfaceList;
struct UDPSocket_struct unicastSock4;
struct UDPSocket_struct unicastSock6;
+ DWORD osMajorVersion;
+ DWORD osMinorVersion;
};
//---------------------------------------------------------------------------------------------------------------------------
} ifa_extra;
};
-\r
+
extern void InterfaceListDidChange( mDNS * const inMDNS );
extern void ComputerDescriptionDidChange( mDNS * const inMDNS );
extern void TCPIPConfigDidChange( mDNS * const inMDNS );
extern mStatus SetupInterfaceList( mDNS * const inMDNS );
extern mStatus TearDownInterfaceList( mDNS * const inMDNS );
extern BOOL IsWOMPEnabled();
-extern void SetSocketEventsEnabled( mDNS * const inMDNS, BOOL val );
+extern void DispatchSocketEvents( mDNS * const inMDNS );
#ifdef __cplusplus