Config.cpp revision fa7a2ccbc768f09aa9d99280a9679f7e37835030
65fea56f17cd614bc8908264df980a62e1931468vboxsync * XXX: license.
65fea56f17cd614bc8908264df980a62e1931468vboxsyncconst NullConfigEntity *g_NullConfig = new NullConfigEntity();
65fea56f17cd614bc8908264df980a62e1931468vboxsyncconst RootConfigEntity *g_RootConfig = new RootConfigEntity(std::string("ROOT"));
65fea56f17cd614bc8908264df980a62e1931468vboxsyncconst ClientMatchCriteria *g_AnyClient = new AnyClientMatchCriteria();
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic SessionManager *g_SessionManager = SessionManager::getSessionManager();
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic ConfigurationManager *g_ConfigurationManager = ConfigurationManager::getConfigurationManager();
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic NetworkManager *g_NetworkManager = NetworkManager::getNetworkManager();
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* Client */
65fea56f17cd614bc8908264df980a62e1931468vboxsync // m_sessions.insert(Map2ClientSessionType(xid, Session(this, xid)));
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* Session */
65fea56f17cd614bc8908264df980a62e1931468vboxsync NetworkConfigEntity(std::string name,
65fea56f17cd614bc8908264df980a62e1931468vboxsync ConfigEntity* pCfg,
65fea56f17cd614bc8908264df980a62e1931468vboxsync ClientMatchCriteria* criteria,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RTNETADDRIPV4& networkID,
65fea56f17cd614bc8908264df980a62e1931468vboxsync RTNETADDRIPV4& networkMask)
65fea56f17cd614bc8908264df980a62e1931468vboxsyncstatic const RTNETADDRIPV4 g_AllIpv4 = {0xffffffff};
65fea56f17cd614bc8908264df980a62e1931468vboxsyncRootConfigEntity::RootConfigEntity(std::string name):
65fea56f17cd614bc8908264df980a62e1931468vboxsync NetworkConfigEntity(name, g_NullConfig, g_AnyClient, g_AnyIpv4, g_AllIpv4)
65fea56f17cd614bc8908264df980a62e1931468vboxsync/* Session Manager */
return g_SessionManager;
bool fDhcpValid = false;
++it)
int rc;
switch(uMsgType)
case RTNET_DHCP_MT_DISCOVER:
case RTNET_DHCP_MT_REQUEST:
case RTNET_DHCP_MT_DECLINE:
case RTNET_DHCP_MT_OFFER:
case RTNET_DHCP_MT_ACK:
case RTNET_DHCP_MT_NAC:
case RTNET_DHCP_MT_RELEASE:
case RTNET_DHCP_MT_INFORM:
return session;
if (!g_ConfigurationManager)
return g_ConfigurationManager;
ConfigurationManager::findOption(uint8_t uOption, PCRTNETBOOTP pDhcpMsg, size_t cbDhcpMsg, RawOption& opt)
return VERR_INVALID_PARAMETER;
return VERR_INVALID_PARAMETER;
bool fExtended = false;
cbLeft--;
pb++;
return VINF_SUCCESS;
return VERR_NOT_FOUND;
return VINF_SUCCESS;
return VINF_SUCCESS;
if (fWithAddressHint)
return VINF_SUCCESS;
fWithAddressHint = false;
bool fFound = false;
fFound = true;
if (!fFound)
return VINF_SUCCESS;
u32Address ++;
return VINF_SUCCESS;
return VINF_SUCCESS;
static int id;
id++;
if (!LowerAddress.u)
if (!UpperAddress.u)
static int id;
id++;
if (!g_NetworkManager)
return g_NetworkManager;
RTNETADDRIPV4 address = ConfigurationManager::getConfigurationManager()->getSessionAddress(session);
*(uint32_t *)opt.au8RawOpt = RT_H2N_U32(ConfigurationManager::getConfigurationManager()->getLeaseTime());
return VINF_SUCCESS;
int rc;
case DHCPOFFERPREPARED:
case DHCPACKNAKPREPARED:
if (!(pDhcpMsg->bp_flags & RTNET_DHCP_FLAGS_NO_BROADCAST)) /** @todo need to see someone set this flag to check that it's correct. */
&m_OurMac,
&m_OurMac,
return VINF_SUCCESS;
int idxParam = 0;
case RTNET_DHCP_OPT_ROUTERS:
++it)
pAddresses++;
case RTNET_DHCP_OPT_DNS:
return VINF_SUCCESS;