本文整理汇总了C++中ConfigurationManager::addToAddressList方法的典型用法代码示例。如果您正苦于以下问题:C++ ConfigurationManager::addToAddressList方法的具体用法?C++ ConfigurationManager::addToAddressList怎么用?C++ ConfigurationManager::addToAddressList使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConfigurationManager
的用法示例。
在下文中一共展示了ConfigurationManager::addToAddressList方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: fetchAndUpdateDnsInfo
int VBoxNetDhcp::fetchAndUpdateDnsInfo()
{
ComHostPtr host;
if (SUCCEEDED(virtualbox->COMGETTER(Host)(host.asOutParam())))
{
AddressToOffsetMapping mapIp4Addr2Off;
int rc = localMappings(m_NATNetwork, mapIp4Addr2Off);
/* XXX: here could be several cases: 1. COM error, 2. not found (empty) 3. ? */
AssertMsgRCReturn(rc, ("Can't fetch local mappings"), rc);
RTNETADDRIPV4 address = getIpv4Address();
RTNETADDRIPV4 netmask = getIpv4Netmask();
AddressList nameservers;
rc = hostDnsServers(host, networkid(address, netmask), mapIp4Addr2Off, nameservers);
AssertMsgRCReturn(rc, ("Debug me!!!"), rc);
/* XXX: Search strings */
std::string domain;
rc = hostDnsDomain(host, domain);
AssertMsgRCReturn(rc, ("Debug me!!"), rc);
{
VBoxNetALock(this);
ConfigurationManager *confManager = ConfigurationManager::getConfigurationManager();
confManager->flushAddressList(RTNET_DHCP_OPT_DNS);
for (AddressList::iterator it = nameservers.begin(); it != nameservers.end(); ++it)
confManager->addToAddressList(RTNET_DHCP_OPT_DNS, *it);
confManager->setString(RTNET_DHCP_OPT_DOMAIN_NAME, domain);
}
}
return VINF_SUCCESS;
}
示例2: initWithMain
int VBoxNetDhcp::initWithMain()
{
/* ok, here we should initiate instance of dhcp server
* and listener for Dhcp configuration events
*/
AssertRCReturn(virtualbox.isNull(), VERR_INTERNAL_ERROR);
std::string networkName = getNetwork();
int rc = findDhcpServer(virtualbox, networkName, m_DhcpServer);
AssertRCReturn(rc, rc);
rc = findNatNetwork(virtualbox, networkName, m_NATNetwork);
AssertRCReturn(rc, rc);
BOOL fNeedDhcpServer = isDhcpRequired(m_NATNetwork);
if (!fNeedDhcpServer)
return VERR_CANCELLED;
RTNETADDRIPV4 gateway;
com::Bstr strGateway;
HRESULT hrc = m_NATNetwork->COMGETTER(Gateway)(strGateway.asOutParam());
AssertComRCReturn(hrc, VERR_INTERNAL_ERROR);
RTNetStrToIPv4Addr(com::Utf8Str(strGateway).c_str(), &gateway);
ConfigurationManager *confManager = ConfigurationManager::getConfigurationManager();
AssertPtrReturn(confManager, VERR_INTERNAL_ERROR);
confManager->addToAddressList(RTNET_DHCP_OPT_ROUTERS, gateway);
rc = fetchAndUpdateDnsInfo();
AssertMsgRCReturn(rc, ("Wasn't able to fetch Dns info"), rc);
ComEventTypeArray aVBoxEvents;
aVBoxEvents.push_back(VBoxEventType_OnHostNameResolutionConfigurationChange);
rc = createNatListener(m_vboxListener, virtualbox, this, aVBoxEvents);
AssertRCReturn(rc, rc);
RTNETADDRIPV4 LowerAddress;
rc = configGetBoundryAddress(m_DhcpServer, false, LowerAddress);
AssertMsgRCReturn(rc, ("can't get lower boundrary adderss'"),rc);
RTNETADDRIPV4 UpperAddress;
rc = configGetBoundryAddress(m_DhcpServer, true, UpperAddress);
AssertMsgRCReturn(rc, ("can't get upper boundrary adderss'"),rc);
RTNETADDRIPV4 address = getIpv4Address();
RTNETADDRIPV4 netmask = getIpv4Netmask();
RTNETADDRIPV4 networkId = networkid(address, netmask);
std::string name = std::string("default");
confManager->addNetwork(unconst(g_RootConfig),
networkId,
netmask,
LowerAddress,
UpperAddress);
com::Bstr bstr;
hrc = virtualbox->COMGETTER(HomeFolder)(bstr.asOutParam());
com::Utf8StrFmt strXmlLeaseFile("%ls%c%s.leases",
bstr.raw(), RTPATH_DELIMITER, networkName.c_str());
confManager->loadFromFile(strXmlLeaseFile);
return VINF_SUCCESS;
}