diff options
Diffstat (limited to 'mDNSResponder/mDNSWindows/mDNSWin32.h')
-rwxr-xr-x | mDNSResponder/mDNSWindows/mDNSWin32.h | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/mDNSResponder/mDNSWindows/mDNSWin32.h b/mDNSResponder/mDNSWindows/mDNSWin32.h new file mode 100755 index 00000000..6b5b4356 --- /dev/null +++ b/mDNSResponder/mDNSWindows/mDNSWin32.h @@ -0,0 +1,163 @@ +/* -*- Mode: C; tab-width: 4 -*- + * + * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __MDNS_WIN32__ +#define __MDNS_WIN32__ + +#include "CommonServices.h" + +#if( !defined( _WIN32_WCE ) ) + #include <mswsock.h> +#endif + +#include "mDNSEmbeddedAPI.h" +#include "uDNS.h" + +#ifdef __cplusplus + extern "C" { +#endif + + +typedef void ( *TCPUserCallback )(); + +struct TCPSocket_struct +{ + TCPSocketFlags flags; // MUST BE FIRST FIELD -- mDNSCore expects every TCPSocket_struct to begin with TCPSocketFlags flags + SOCKET fd; + BOOL connected; + TCPUserCallback userCallback; + void * userContext; + 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; + DNSMessage packet; + struct mDNSInterfaceData *ifd; + UDPSocket *next; + mDNS *m; +}; + + +//--------------------------------------------------------------------------------------------------------------------------- +/*! @struct mDNSInterfaceData + + @abstract Structure containing interface-specific data. +*/ + +typedef struct mDNSInterfaceData mDNSInterfaceData; +struct mDNSInterfaceData +{ + char name[ 128 ]; + uint32_t index; + uint32_t scopeID; + struct UDPSocket_struct sock; + NetworkInterfaceInfo interfaceInfo; + mDNSBool hostRegistered; + mDNSInterfaceData * next; +}; + + +//--------------------------------------------------------------------------------------------------------------------------- +/*! @typedef ReportStatusFunc +*/ +typedef void (*ReportStatusFunc)(int inType, const char *inFormat, ...); + + +//--------------------------------------------------------------------------------------------------------------------------- +/*! @struct mDNS_PlatformSupport_struct + + @abstract Structure containing platform-specific data. +*/ + +struct mDNS_PlatformSupport_struct +{ + HANDLE mainThread; + HANDLE checkFileSharesTimer; + mDNSs32 checkFileSharesTimeout; + ReportStatusFunc reportStatusFunc; + time_t nextDHCPLeaseExpires; + char nbname[ 32 ]; + char nbdomain[ 32 ]; + mDNSBool smbFileSharing; + mDNSBool smbPrintSharing; + ServiceRecordSet smbSRS; + AuthRecord smbSubTypes[ 2 ]; + mDNSBool registeredLoopback4; + int interfaceCount; + mDNSInterfaceData * interfaceList; + mDNSInterfaceData * inactiveInterfaceList; + struct UDPSocket_struct unicastSock4; + struct UDPSocket_struct unicastSock6; + DWORD osMajorVersion; + DWORD osMinorVersion; +}; + +//--------------------------------------------------------------------------------------------------------------------------- +/*! @struct ifaddrs + + @abstract Interface information +*/ + +struct ifaddrs +{ + struct ifaddrs * ifa_next; + char * ifa_name; + u_int ifa_flags; + struct sockaddr * ifa_addr; + struct sockaddr * ifa_netmask; + struct sockaddr * ifa_broadaddr; + struct sockaddr * ifa_dstaddr; + BYTE ifa_physaddr[6]; + BOOL ifa_dhcpEnabled; + time_t ifa_dhcpLeaseExpires; + mDNSu8 ifa_womp; + void * ifa_data; + + struct + { + uint32_t index; + + } ifa_extra; +}; + + +extern void InterfaceListDidChange( mDNS * const inMDNS ); +extern void ComputerDescriptionDidChange( mDNS * const inMDNS ); +extern void TCPIPConfigDidChange( mDNS * const inMDNS ); +extern void DynDNSConfigDidChange( mDNS * const inMDNS ); +extern void FileSharingDidChange( mDNS * const inMDNS ); +extern void FirewallDidChange( mDNS * const inMDNS ); +extern mStatus TCPAddSocket( mDNS * const inMDNS, TCPSocket *sock ); +extern mStatus SetupInterfaceList( mDNS * const inMDNS ); +extern mStatus TearDownInterfaceList( mDNS * const inMDNS ); +extern BOOL IsWOMPEnabled(); +extern void DispatchSocketEvents( mDNS * const inMDNS ); + + +#ifdef __cplusplus + } +#endif + +#endif // __MDNS_WIN32__ |