summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/mDNSWindows/mDNSWin32.c
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/mDNSWindows/mDNSWin32.c')
-rwxr-xr-xmDNSResponder/mDNSWindows/mDNSWin32.c195
1 files changed, 58 insertions, 137 deletions
diff --git a/mDNSResponder/mDNSWindows/mDNSWin32.c b/mDNSResponder/mDNSWindows/mDNSWin32.c
index 0789cf4d..011125b9 100755
--- a/mDNSResponder/mDNSWindows/mDNSWin32.c
+++ b/mDNSResponder/mDNSWindows/mDNSWin32.c
@@ -106,7 +106,6 @@ mDNSlocal int getifaddrs( struct ifaddrs **outAddrs );
mDNSlocal void freeifaddrs( struct ifaddrs *inAddrs );
-
// Platform Accessors
#ifdef __cplusplus
@@ -127,8 +126,6 @@ mDNSexport mStatus mDNSPlatformInterfaceIDToInfo( mDNS * const inMDNS, mDNSInter
// Wakeup Structs
-#define kUnicastWakeupNumTries ( 1 )
-#define kUnicastWakeupSleepBetweenTries ( 0 )
#define kMulticastWakeupNumTries ( 18 )
#define kMulticastWakeupSleepBetweenTries ( 100 )
@@ -152,7 +149,6 @@ typedef struct MulticastWakeupStruct
mDNSlocal int getifaddrs_ipv4( struct ifaddrs **outAddrs );
-
mDNSlocal DWORD GetPrimaryInterface();
mDNSlocal mStatus AddressToIndexAndMask( struct sockaddr * address, uint32_t * index, struct sockaddr * mask );
mDNSlocal mDNSBool CanReceiveUnicast( void );
@@ -216,12 +212,10 @@ mDNSlocal BOOL gEnableIPv6 = TRUE;
#endif
-
#ifndef HCRYPTPROV
typedef ULONG_PTR HCRYPTPROV; // WinCrypt.h, line 249
#endif
-
#ifndef CRYPT_MACHINE_KEYSET
# define CRYPT_MACHINE_KEYSET 0x00000020
#endif
@@ -277,7 +271,6 @@ mDNSlocal HANDLE gSMBThreadQuitEvent = NULL;
#define kSMBRegisterEvent ( WAIT_OBJECT_0 + 1 )
#define kSMBDeregisterEvent ( WAIT_OBJECT_0 + 2 )
-
#if 0
#pragma mark -
#pragma mark == Platform Support ==
@@ -570,7 +563,6 @@ mDNSexport void mDNSPlatformClose( mDNS * const inMDNS )
dlog( kDebugLevelTrace, DEBUG_NAME "platform close done\n" );
}
-
//===========================================================================================================================
// mDNSPlatformLock
//===========================================================================================================================
@@ -602,6 +594,39 @@ mDNSexport void mDNSPlatformStrCopy( void *inDst, const void *inSrc )
}
//===========================================================================================================================
+// mDNSPlatformStrLCopy
+//===========================================================================================================================
+
+mDNSexport mDNSu32 mDNSPlatformStrLCopy( void *inDst, const void *inSrc, mDNSu32 inSize )
+{
+ const char * src = (const char *) inSrc;
+
+ if( inSize > 0 )
+ {
+ size_t n;
+ char * dst = (char *) inDst;
+
+ for( n = inSize - 1; n > 0; --n )
+ {
+ if( ( *dst++ = *src++ ) == '\0' )
+ {
+ // Null terminator encountered, so exit.
+ goto exit;
+ }
+ }
+ *dst = '\0';
+ }
+
+ while( *src++ != '\0' )
+ {
+ // Stop at null terminator.
+ }
+
+exit:
+ return( (mDNSu32)( src - (const char *) inSrc ) - 1 );
+}
+
+//===========================================================================================================================
// mDNSPlatformStrLen
//===========================================================================================================================
@@ -940,7 +965,6 @@ mDNSexport mDNSu32 mDNSPlatformInterfaceIndexfromInterfaceID( mDNS * const inMDN
return( index );
}
-
//===========================================================================================================================
// mDNSPlatformTCPSocket
//===========================================================================================================================
@@ -1077,12 +1101,10 @@ exit:
return err;
}
-
//===========================================================================================================================
// mDNSPlatformTCPAccept
//===========================================================================================================================
-mDNSexport
mDNSexport TCPSocket *mDNSPlatformTCPAccept( TCPSocketFlags flags, int fd )
{
TCPSocket * sock = NULL;
@@ -1109,7 +1131,6 @@ exit:
return sock;
}
-
//===========================================================================================================================
// mDNSPlatformTCPCloseConnection
//===========================================================================================================================
@@ -1133,7 +1154,6 @@ mDNSexport void mDNSPlatformTCPCloseConnection( TCPSocket *sock )
}
}
-
//===========================================================================================================================
// mDNSPlatformReadTCP
//===========================================================================================================================
@@ -1173,7 +1193,6 @@ mDNSexport long mDNSPlatformReadTCP( TCPSocket *sock, void *inBuffer, unsigned l
return nread;
}
-
//===========================================================================================================================
// mDNSPlatformWriteTCP
//===========================================================================================================================
@@ -1207,8 +1226,6 @@ mDNSexport int mDNSPlatformTCPGetFD(TCPSocket *sock )
return ( int ) sock->fd;
}
-
-
//===========================================================================================================================
// TCPSocketNotification
//===========================================================================================================================
@@ -1248,8 +1265,6 @@ exit:
return;
}
-
-
//===========================================================================================================================
// mDNSPlatformUDPSocket
//===========================================================================================================================
@@ -1362,7 +1377,6 @@ mDNSexport void mDNSPlatformUDPClose( UDPSocket *sock )
}
}
-
//===========================================================================================================================
// mDNSPlatformSendUDP
//===========================================================================================================================
@@ -1450,21 +1464,12 @@ exit:
return( err );
}
-
-mDNSexport mDNSBool mDNSPlatformPeekUDP(mDNS *const m, UDPSocket *src)
-{
- DEBUG_UNUSED( m );
- DEBUG_UNUSED( src );
- return mDNSfalse;
-}
-
mDNSexport void mDNSPlatformUpdateProxyList(mDNS *const m, const mDNSInterfaceID InterfaceID)
{
DEBUG_UNUSED( m );
DEBUG_UNUSED( InterfaceID );
}
-
mDNSexport void mDNSPlatformSetAllowSleep(mDNS *const m, mDNSBool allowSleep, const char *reason)
{
DEBUG_UNUSED( m );
@@ -1482,14 +1487,13 @@ mDNSexport void mDNSPlatformSendWakeupPacket(mDNS *const m, mDNSInterfaceID Inte
unsigned char buf[ 102 ];
char hex[ 3 ] = { 0 };
unsigned char *bufPtr = buf;
- struct sockaddr_storage saddr;
- INT len = sizeof( saddr );
- mDNSBool unicast = mDNSfalse;
MulticastWakeupStruct *info;
int i;
mStatus err;
- (void) InterfaceID;
+ (void) InterfaceID; // unused
+ (void) ipaddr; // unused
+ (void) iteration; // unused
require_action( ethaddr, exit, err = mStatus_BadParamErr );
@@ -1512,44 +1516,6 @@ mDNSexport void mDNSPlatformSendWakeupPacket(mDNS *const m, mDNSInterfaceID Inte
bufPtr += sizeof( mac );
}
- if ( ipaddr )
- {
- if ( WSAStringToAddressA( ipaddr, AF_INET, NULL, ( LPSOCKADDR ) &saddr, &len ) == 0 )
- {
- struct sockaddr_in * saddr4 = ( struct sockaddr_in* ) &saddr;
- saddr4->sin_port = htons( 9 );
- len = sizeof( *saddr4 );
-
- if ( saddr4->sin_addr.s_addr != htonl( INADDR_ANY ) )
- {
- unicast = mDNStrue;
- }
- }
- else if ( WSAStringToAddressA( ipaddr, AF_INET6, NULL, ( LPSOCKADDR ) &saddr, &len ) == 0 )
- {
- mDNSInterfaceData *ifd = ( mDNSInterfaceData* ) InterfaceID;
- struct sockaddr_in6 * saddr6 = ( struct sockaddr_in6* ) &saddr;
- saddr6->sin6_port = htons( 9 );
-
- if ( ifd != NULL )
- {
- saddr6->sin6_scope_id = ifd->scopeID;
- }
-
- len = sizeof( *saddr6 );
-
- if ( memcmp( &saddr6->sin6_addr, &in6addr_any, sizeof( IN6_ADDR ) ) != 0 )
- {
- unicast = mDNStrue;
- }
- }
- }
-
- if ( ( iteration < 2 ) && ( unicast ) )
- {
- SendWakeupPacket( m, ( LPSOCKADDR ) &saddr, len, ( const char* ) buf, sizeof( buf ), kUnicastWakeupNumTries, kUnicastWakeupSleepBetweenTries );
- }
-
info = ( MulticastWakeupStruct* ) malloc( sizeof( MulticastWakeupStruct ) );
require_action( info, exit, err = mStatus_NoMemoryErr );
info->inMDNS = m;
@@ -1570,11 +1536,10 @@ exit:
return;
}
-
-mDNSexport mDNSBool mDNSPlatformValidRecordForInterface(AuthRecord *rr, const NetworkInterfaceInfo *intf)
+mDNSexport mDNSBool mDNSPlatformValidRecordForInterface(const AuthRecord *rr, mDNSInterfaceID InterfaceID)
{
DEBUG_UNUSED( rr );
- DEBUG_UNUSED( intf );
+ DEBUG_UNUSED( InterfaceID );
return mDNStrue;
}
@@ -1601,7 +1566,6 @@ mDNSexport void mDNSPlatformFormatTime(unsigned long te, mDNSu8 *buf, int bufsiz
if (bufsize) buf[0] = 0;
}
-
mDNSexport void mDNSPlatformSetLocalAddressCacheEntry(mDNS *const m, const mDNSAddr *const tpa, const mDNSEthAddr *const tha, mDNSInterfaceID InterfaceID)
{
DEBUG_UNUSED( m );
@@ -1610,7 +1574,6 @@ mDNSexport void mDNSPlatformSetLocalAddressCacheEntry(mDNS *const m, const mDNSA
DEBUG_UNUSED( InterfaceID );
}
-
mDNSexport void mDNSPlatformReceiveRawPacket(const void *const msg, const mDNSu8 *const end, mDNSInterfaceID InterfaceID)
{
DEBUG_UNUSED( msg );
@@ -1711,7 +1674,6 @@ mDNSexport mDNSBool mDNSPlatformSetDNSConfig(mDNS *const m, mDNSBool setservers,
return mDNStrue;
}
-
//===========================================================================================================================
// mDNSPlatformDynDNSHostNameStatusChanged
//===========================================================================================================================
@@ -1756,7 +1718,6 @@ exit:
return;
}
-
//===========================================================================================================================
// SetDomainSecrets
//===========================================================================================================================
@@ -1798,7 +1759,6 @@ SetDomainSecrets( mDNS * const m )
}
}
-
//===========================================================================================================================
// SetSearchDomainList
//===========================================================================================================================
@@ -1849,7 +1809,6 @@ exit:
SetReverseMapSearchDomainList();
}
-
//===========================================================================================================================
// SetReverseMapSearchDomainList
//===========================================================================================================================
@@ -1871,10 +1830,10 @@ SetReverseMapSearchDomainList( void )
if (!SetupAddr(&netmask, ifa->ifa_netmask))
{
- sprintf(buffer, "%d.%d.%d.%d.in-addr.arpa.", addr.ip.v4.b[3] & netmask.ip.v4.b[3],
- addr.ip.v4.b[2] & netmask.ip.v4.b[2],
- addr.ip.v4.b[1] & netmask.ip.v4.b[1],
- addr.ip.v4.b[0] & netmask.ip.v4.b[0]);
+ _snprintf(buffer, sizeof( buffer ), "%d.%d.%d.%d.in-addr.arpa.", addr.ip.v4.b[3] & netmask.ip.v4.b[3],
+ addr.ip.v4.b[2] & netmask.ip.v4.b[2],
+ addr.ip.v4.b[1] & netmask.ip.v4.b[1],
+ addr.ip.v4.b[0] & netmask.ip.v4.b[0]);
mDNS_AddSearchDomain_CString(buffer, mDNSNULL);
}
}
@@ -1885,7 +1844,6 @@ SetReverseMapSearchDomainList( void )
return;
}
-
//===========================================================================================================================
// SetDNSServers
//===========================================================================================================================
@@ -1978,7 +1936,6 @@ exit:
}
}
-
//===========================================================================================================================
// SetDomainFromDHCP
//===========================================================================================================================
@@ -2071,7 +2028,6 @@ exit:
}
}
-
//===========================================================================================================================
// mDNSPlatformGetPrimaryInterface
//===========================================================================================================================
@@ -2171,8 +2127,16 @@ mDNSexport mStatus mDNSPlatformStoreSPSMACAddr(mDNSAddr *spsaddr, char *ifna
return mStatus_UnsupportedErr;
}
-mDNSexport mStatus mDNSPlatformClearSPSMACAddr(void)
+mDNSexport mStatus mDNSPlatformClearSPSData(void)
+{
+ return mStatus_UnsupportedErr;
+}
+
+mDNSexport mStatus mDNSPlatformStoreOwnerOptRecord(char *ifname, DNSMessage *msg, int length)
{
+ (void) ifname; // Unused
+ (void) msg; // Unused
+ (void) length; // Unused
return mStatus_UnsupportedErr;
}
@@ -2188,18 +2152,11 @@ mDNSexport mStatus mDNSPlatformRetrieveTCPInfo(mDNS *const m, mDNSAddr *laddr, m
return mStatus_UnsupportedErr;
}
-mDNSexport void mDNSPlatformGetDNSRoutePolicy(mDNS *const m, DNSQuestion *q, mDNSBool *isCellBlocked)
-{
- (void) m;
-
- q->ServiceID = -1;
- *isCellBlocked = mDNSfalse;
-}
-
-mDNSexport void mDNSPlatformSetuDNSSocktOpt(UDPSocket *src, const mDNSAddr *dst, DNSQuestion *q)
+mDNSexport void mDNSPlatformSetSocktOpt(void *sock, mDNSTransport_Type transType, mDNSAddr_Type addrType, DNSQuestion *q)
{
- (void) src;
- (void) dst;
+ (void) sock;
+ (void) transType;
+ (void) addrType;
(void) q;
}
@@ -2263,13 +2220,11 @@ mDNSexport void verbosedebugf_( const char *inFormat, ... )
}
#endif
-
#if 0
#pragma mark -
#pragma mark == Platform Internals ==
#endif
-
//===========================================================================================================================
// SetupNiceName
//===========================================================================================================================
@@ -2341,7 +2296,7 @@ mStatus SetupNiceName( mDNS * const inMDNS )
{
// Invalidate name so fall back to a default name.
- strcpy( utf8, kMDNSDefaultName );
+ strcpy_s( utf8, sizeof( utf8 ), kMDNSDefaultName );
}
utf8[ sizeof( utf8 ) - 1 ] = '\0';
@@ -2411,7 +2366,7 @@ mDNSlocal mStatus SetupHostName( mDNS * const inMDNS )
{
// Invalidate name so fall back to a default name.
- strcpy( tempString, kMDNSDefaultName );
+ strcpy_s( tempString, sizeof( tempString ), kMDNSDefaultName );
}
tempString[ sizeof( tempString ) - 1 ] = '\0';
@@ -2456,7 +2411,6 @@ mDNSlocal mStatus SetupName( mDNS * const inMDNS )
return err;
}
-
//===========================================================================================================================
// SetupInterfaceList
//===========================================================================================================================
@@ -3209,7 +3163,6 @@ mDNSlocal mStatus SockAddrToMDNSAddr( const struct sockaddr * const inSA, mDNSAd
return( err );
}
-
#if 0
#pragma mark -
#endif
@@ -3404,7 +3357,6 @@ exit:
return;
}
-
//===========================================================================================================================
// InterfaceListDidChange
//===========================================================================================================================
@@ -3435,7 +3387,6 @@ void InterfaceListDidChange( mDNS * const inMDNS )
mDNSCoreMachineSleep( inMDNS, mDNSfalse ); // What is this for? Mac OS X does not do this
}
-
//===========================================================================================================================
// ComputerDescriptionDidChange
//===========================================================================================================================
@@ -3448,7 +3399,6 @@ void ComputerDescriptionDidChange( mDNS * const inMDNS )
SetupNiceName( inMDNS );
}
-
//===========================================================================================================================
// TCPIPConfigDidChange
//===========================================================================================================================
@@ -3463,7 +3413,6 @@ void TCPIPConfigDidChange( mDNS * const inMDNS )
check_noerr( err );
}
-
//===========================================================================================================================
// DynDNSConfigDidChange
//===========================================================================================================================
@@ -3480,7 +3429,6 @@ void DynDNSConfigDidChange( mDNS * const inMDNS )
check_noerr( err );
}
-
//===========================================================================================================================
// FileSharingDidChange
//===========================================================================================================================
@@ -3492,7 +3440,6 @@ void FileSharingDidChange( mDNS * const inMDNS )
CheckFileShares( inMDNS );
}
-
//===========================================================================================================================
// FilewallDidChange
//===========================================================================================================================
@@ -3504,7 +3451,6 @@ void FirewallDidChange( mDNS * const inMDNS )
CheckFileShares( inMDNS );
}
-
#if 0
#pragma mark -
#pragma mark == Utilities ==
@@ -3982,7 +3928,7 @@ mDNSlocal int getifaddrs_ipv4( struct ifaddrs **outAddrs )
ifa->ifa_name = (char *) malloc( 16 );
require_action( ifa->ifa_name, exit, err = WSAENOBUFS );
- sprintf( ifa->ifa_name, "%d", i + 1 );
+ _snprintf( ifa->ifa_name, 16, "%d", i + 1 );
// Get interface flags.
@@ -4092,7 +4038,6 @@ mDNSlocal void freeifaddrs( struct ifaddrs *inIFAs )
}
}
-
//===========================================================================================================================
// GetPrimaryInterface
//===========================================================================================================================
@@ -4123,7 +4068,6 @@ GetPrimaryInterface()
err = GetIpForwardTable(pIpForwardTable, &dwSize, bOrder);
require_noerr( err, exit );
-
// Search for the row in the table we want.
for ( i = 0; i < pIpForwardTable->dwNumEntries; i++)
@@ -4152,7 +4096,6 @@ exit:
return index;
}
-
//===========================================================================================================================
// AddressToIndexAndMask
//===========================================================================================================================
@@ -4213,7 +4156,6 @@ exit:
return err;
}
-
//===========================================================================================================================
// CanReceiveUnicast
//===========================================================================================================================
@@ -4244,7 +4186,6 @@ mDNSlocal mDNSBool CanReceiveUnicast( void )
return( ok );
}
-
//===========================================================================================================================
// IsPointToPoint
//===========================================================================================================================
@@ -4286,7 +4227,6 @@ exit:
return ret;
}
-
//===========================================================================================================================
// GetWindowsVersionString
//===========================================================================================================================
@@ -4387,7 +4327,6 @@ exit:
return( err );
}
-
//===========================================================================================================================
// RegQueryString
//===========================================================================================================================
@@ -4436,7 +4375,6 @@ exit:
return err;
}
-
//===========================================================================================================================
// StringToAddress
//===========================================================================================================================
@@ -4476,7 +4414,6 @@ exit:
return err;
}
-
//===========================================================================================================================
// myGetIfAddrs
//===========================================================================================================================
@@ -4500,7 +4437,6 @@ myGetIfAddrs(int refresh)
return ifa;
}
-
//===========================================================================================================================
// TCHARtoUTF8
//===========================================================================================================================
@@ -4523,7 +4459,6 @@ exit:
#endif
}
-
//===========================================================================================================================
// WindowsLatin1toUTF8
//===========================================================================================================================
@@ -4561,7 +4496,6 @@ exit:
return( err );
}
-
//===========================================================================================================================
// TCPCloseSocket
//===========================================================================================================================
@@ -4578,7 +4512,6 @@ TCPCloseSocket( TCPSocket * sock )
}
}
-
//===========================================================================================================================
// UDPCloseSocket
//===========================================================================================================================
@@ -4596,7 +4529,6 @@ UDPCloseSocket( UDPSocket * sock )
}
}
-
//===========================================================================================================================
// SetupAddr
//===========================================================================================================================
@@ -4626,7 +4558,6 @@ mDNSlocal mStatus SetupAddr(mDNSAddr *ip, const struct sockaddr *const sa)
return(mStatus_Invalid);
}
-
mDNSlocal void GetDDNSFQDN( domainname *const fqdn )
{
LPSTR name = NULL;
@@ -4670,7 +4601,6 @@ exit:
}
}
-
#ifdef UNICODE
mDNSlocal void GetDDNSDomains( DNameListElem ** domains, LPCWSTR lpSubKey )
#else
@@ -4754,7 +4684,6 @@ exit:
}
}
-
mDNSlocal void SetDomainSecret( mDNS * const m, const domainname * inDomain )
{
char domainUTF8[ 256 ];
@@ -4801,7 +4730,6 @@ exit:
return;
}
-
mDNSlocal VOID CALLBACK
CheckFileSharesProc( LPVOID arg, DWORD dwTimerLowValue, DWORD dwTimerHighValue )
{
@@ -4813,7 +4741,6 @@ CheckFileSharesProc( LPVOID arg, DWORD dwTimerLowValue, DWORD dwTimerHighValue )
CheckFileShares( m );
}
-
mDNSlocal unsigned __stdcall
SMBRegistrationThread( void * arg )
{
@@ -4902,7 +4829,6 @@ exit:
return 0;
}
-
mDNSlocal void
CheckFileShares( mDNS * const m )
{
@@ -5056,7 +4982,6 @@ exit:
}
}
-
BOOL
IsWOMPEnabled( mDNS * const m )
{
@@ -5078,7 +5003,6 @@ IsWOMPEnabled( mDNS * const m )
return enabled;
}
-
mDNSlocal mDNSu8
IsWOMPEnabledForAdapter( const char * adapterName )
{
@@ -5128,7 +5052,6 @@ exit:
return ( mDNSu8 ) ok;
}
-
mDNSlocal void
SendWakeupPacket( mDNS * const inMDNS, LPSOCKADDR addr, INT addrlen, const char * buf, INT buflen, INT numTries, INT msecSleep )
{
@@ -5175,7 +5098,6 @@ exit:
}
}
-
mDNSlocal void _cdecl
SendMulticastWakeupPacket( void *arg )
{
@@ -5190,7 +5112,6 @@ SendMulticastWakeupPacket( void *arg )
_endthread();
}
-
mDNSexport void FreeEtcHosts(mDNS *const m, AuthRecord *const rr, mStatus result)
{
DEBUG_UNUSED( m );