summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/mDNSWindows/mDNSWin32.h
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/mDNSWindows/mDNSWin32.h')
-rwxr-xr-xmDNSResponder/mDNSWindows/mDNSWin32.h163
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__