VirtualBox

Changeset 39778 in vbox for trunk/src/VBox/Devices


Ignore:
Timestamp:
Jan 17, 2012 12:30:57 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
75724
Message:

NAT: DrvNAT.cpp (missed changes)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNAT.cpp

    r39766 r39778  
    10161016    for (PCFGMNODE pNode = CFGMR3GetFirstChild(pMappingsCfg); pNode; pNode = CFGMR3GetNextChild(pNode))
    10171017    {
    1018         if (!CFGMR3AreValuesValid(pNode, "HostName\0HostIP\0"))
     1018        if (!CFGMR3AreValuesValid(pNode, "HostName\0HostNamePattern\0HostIP\0"))
    10191019            return PDMDRV_SET_ERROR(pThis->pDrvIns, VERR_PDM_DRVINS_UNKNOWN_CFG_VALUES,
    10201020                                    N_("Unknown configuration in dns mapping"));
    1021         char szHostName[255];
    1022         RT_ZERO(szHostName);
    1023         GET_STRING(rc, pThis, pNode, "HostName", szHostName[0], sizeof(szHostName));
     1021        char szHostNameOrPattern[255];
     1022        /* fMatch = false used for equal matching, and true if regex is used */
     1023        bool fMatch = false;
     1024        RT_ZERO(szHostNameOrPattern);
     1025        GET_STRING(rc, pThis, pNode, "HostName", szHostNameOrPattern[0], sizeof(szHostNameOrPattern));
     1026        if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     1027        {
     1028            GET_STRING(rc, pThis, pNode, "HostNamePattern", szHostNameOrPattern[0], sizeof(szHostNameOrPattern));
     1029            if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     1030            {
     1031                char szNodeName[225];
     1032                RT_ZERO(szNodeName);
     1033                CFGMR3GetName(pNode, szNodeName, sizeof(szNodeName));
     1034                LogRel(("NAT: Neither 'HostName' nor 'HostNamePattern' is specified for mapping %s\n", szNodeName));
     1035                continue;
     1036            }
     1037            fMatch = true;
     1038        }
    10241039        struct in_addr HostIP;
    10251040        GETIP_DEF(rc, pThis, pNode, HostIP, INADDR_ANY);
    1026         slirp_add_host_resolver_mapping(pThis->pNATState, szHostName, HostIP.s_addr);
     1041        if (rc == VERR_CFGM_VALUE_NOT_FOUND)
     1042        {
     1043            LogRel(("NAT: DNS mapping %s is ignored (address not pointed)\n", szHostNameOrPattern));
     1044            continue;
     1045        }
     1046        slirp_add_host_resolver_mapping(pThis->pNATState, fMatch ? NULL : szHostNameOrPattern, fMatch ? szHostNameOrPattern : NULL, HostIP.s_addr);
    10271047    }
    10281048    LogFlowFunc(("LEAVE: %Rrc\n", rc));
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette