Changeset 39775 in vbox for trunk/src/VBox
- Timestamp:
- Jan 17, 2012 11:03:12 AM (13 years ago)
- Location:
- trunk/src/VBox/Devices/Network/slirp
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Network/slirp/libalias/alias_dns.c
r39774 r39775 377 377 378 378 #ifdef VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER 379 static bool isDnsMappingEntryMatchOrEqual2Str(const PDNSMAPPINGENTRY pDNSMapingEntry, const char *pcszString) 380 { 381 return ( ( pDNSMapingEntry->pszCName 382 && !strcmp(pDNSMapingEntry->pszCName, pcszString)) 383 || ( pDNSMapingEntry->pszPattern 384 && RTStrSimplePatternMatch(pDNSMapingEntry->pszPattern, pcszString))); 385 } 386 379 387 static void alterHostentWithDataFromDNSMap(PNATState pData, struct hostent *pHostent) 380 388 { … … 384 392 { 385 393 char **pszAlias = NULL; 386 if ( !strcmp(pDNSMapingEntry->pszCName, pHostent->h_name))394 if (isDnsMappingEntryMatchOrEqual2Str(pDNSMapingEntry, pHostent->h_name)) 387 395 { 388 396 fMatch = true; … … 392 400 for (pszAlias = pHostent->h_aliases; *pszAlias && !fMatch; pszAlias++) 393 401 { 394 if ( !strcmp(pDNSMapingEntry->pszCName, *pszAlias))402 if (isDnsMappingEntryMatchOrEqual2Str(pDNSMapingEntry, *pszAlias)) 395 403 { 396 404 -
trunk/src/VBox/Devices/Network/slirp/libslirp.h
r39766 r39775 149 149 150 150 #ifdef VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER 151 void slirp_add_host_resolver_mapping(PNATState pData, const char *pszHostName, uint32_t u32HostIP);151 void slirp_add_host_resolver_mapping(PNATState pData, const char *pszHostName, const char *pszHostNamePattern, uint32_t u32HostIP); 152 152 #endif 153 153 -
trunk/src/VBox/Devices/Network/slirp/slirp.c
r39772 r39775 2159 2159 } 2160 2160 #ifdef VBOX_WITH_DNSMAPPING_IN_HOSTRESOLVER 2161 void slirp_add_host_resolver_mapping(PNATState pData, const char *pszHostName, uint32_t u32HostIP) 2162 { 2163 LogFlowFunc(("ENTER: pszHostName:%s, u32HostIP:%RTnaipv4\n", pszHostName, u32HostIP)); 2164 if ( pszHostName 2165 || u32HostIP != INADDR_ANY 2166 || u32HostIP != INADDR_BROADCAST) 2161 void slirp_add_host_resolver_mapping(PNATState pData, const char *pszHostName, const char *pszHostNamePattern, uint32_t u32HostIP) 2162 { 2163 LogFlowFunc(("ENTER: pszHostName:%s, pszHostNamePattern:%s u32HostIP:%RTnaipv4\n", 2164 pszHostName ? pszHostName : "(null)", 2165 pszHostNamePattern ? pszHostNamePattern : "(null)", 2166 u32HostIP)); 2167 if ( ( pszHostName 2168 || pszHostNamePattern) 2169 && u32HostIP != INADDR_ANY 2170 && u32HostIP != INADDR_BROADCAST) 2167 2171 { 2168 2172 PDNSMAPPINGENTRY pDnsMapping = RTMemAllocZ(sizeof(DNSMAPPINGENTRY)); … … 2174 2178 } 2175 2179 pDnsMapping->u32IpAddress = u32HostIP; 2176 pDnsMapping->pszCName = RTStrDup(pszHostName); 2177 if (!pDnsMapping->pszCName) 2178 { 2179 LogFunc(("Can't allocate enough room for %s\n", pszHostName)); 2180 if (pszHostName) 2181 pDnsMapping->pszCName = RTStrDup(pszHostName); 2182 else if (pszHostNamePattern) 2183 pDnsMapping->pszPattern = RTStrDup(pszHostNamePattern); 2184 if ( !pDnsMapping->pszCName 2185 && !pDnsMapping->pszPattern) 2186 { 2187 LogFunc(("Can't allocate enough room for %s\n", pszHostName ? pszHostName : pszHostNamePattern)); 2180 2188 RTMemFree(pDnsMapping); 2181 2189 LogFlowFuncLeave(); -
trunk/src/VBox/Devices/Network/slirp/slirp_state.h
r39766 r39775 69 69 typedef struct DNSMAPPINGENTRY 70 70 { 71 /* 72 * host name to map 73 * Note: if pszCName isn't null pszPattern won't be used (see alias_dns.c for details) 74 */ 71 75 char *pszCName; 76 /* pattern of hostnames to map to specifaied IP */ 77 char *pszPattern; 72 78 uint32_t u32IpAddress; 73 79 LIST_ENTRY(DNSMAPPINGENTRY) MapList;
Note:
See TracChangeset
for help on using the changeset viewer.