- Timestamp:
- Sep 3, 2014 6:47:31 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 95863
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/DrvNAT.cpp
r50951 r52591 970 970 PDRVNAT pThis = (PDRVNAT)pvUser; 971 971 972 LogRel(("NAT: DNS servers changed, triggering reconnect\n")); 973 974 CFDictionaryRef hDnsDict = (CFDictionaryRef)SCDynamicStoreCopyValue(hDynStor, CFSTR("State:/Network/Global/DNS")); 975 if (hDnsDict) 976 { 977 CFArrayRef hArrAddresses = (CFArrayRef)CFDictionaryGetValue(hDnsDict, kSCPropNetDNSServerAddresses); 978 if (hArrAddresses) 972 LogRel(("NAT: System configuration has changed\n")); 973 974 /* Check if any of parameters we are interested in were actually changed. If the size 975 * of hChangedKeys is 0, it means that SCDynamicStore has been restarted. */ 976 if (hChangedKeys && CFArrayGetCount(hChangedKeys) > 0) 977 { 978 /* Look to the updated parameters in particular. */ 979 CFStringRef pDNSKey = CFSTR("State:/Network/Global/DNS"); 980 981 if (CFArrayContainsValue(hChangedKeys, CFRangeMake(0, CFArrayGetCount(hChangedKeys)), pDNSKey)) 982 { 983 LogRel(("NAT: DNS servers changed, triggering reconnect\n")); 984 985 CFDictionaryRef hDnsDict = (CFDictionaryRef)SCDynamicStoreCopyValue(hDynStor, pDNSKey); 986 if (hDnsDict) 987 { 988 CFArrayRef hArrAddresses = (CFArrayRef)CFDictionaryGetValue(hDnsDict, kSCPropNetDNSServerAddresses); 989 if (hArrAddresses && CFArrayGetCount(hArrAddresses) > 0) 990 { 991 #if 1 992 /* Dump DNS servers list. */ 993 for (int i = 0; i < CFArrayGetCount(hArrAddresses); i++) 994 { 995 CFStringRef pDNSAddrStr = (CFStringRef)CFArrayGetValueAtIndex(hArrAddresses, i); 996 const char *pszDNSAddr = pDNSAddrStr ? CFStringGetCStringPtr(pDNSAddrStr, CFStringGetSystemEncoding()) : NULL; 997 LogRel(("NAT: New DNS server#%d: %s\n", i, pszDNSAddr ? pszDNSAddr : "None")); 998 } 999 #endif 1000 } 1001 else 1002 LogRel(("NAT: DNS server list is empty (1)\n")); 1003 1004 CFRelease(hDnsDict); 1005 } 1006 else 1007 LogRel(("NAT: DNS server list is empty (2)\n")); 1008 979 1009 drvNATUpdateDNS(pThis, /* fFlapLink */ true); 980 981 CFRelease(hDnsDict); 982 } 1010 } 1011 else 1012 LogRel(("NAT: No DNS changes detected\n")); 1013 } 1014 else 1015 LogRel(("NAT: SCDynamicStore has been restarted\n")); 983 1016 } 984 1017 #endif
Note:
See TracChangeset
for help on using the changeset viewer.