DHCPServerImpl.cpp revision dc09cb937d0a66e030b4d7bef88dec429f41e060
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * VirtualBox COM class implementation
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * Copyright (C) 2006-2008 Oracle Corporation
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * available from http://www.virtualbox.org. This file is free software;
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * you can redistribute it and/or modify it under the terms of the GNU
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * General Public License (GPL) as published by the Free Software
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync// constructor / destructor
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync/////////////////////////////////////////////////////////////////////////////
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync /* Enclose the state transition Ready->InUninit->NotReady */
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncHRESULT DHCPServer::init(VirtualBox *aVirtualBox, IN_BSTR aName)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync /* share VirtualBox weakly (parent remains NULL so far) */
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync /* Confirm a successful initialization */
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync /* Enclose the state transition NotReady->InInit->Ready */
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync /* share VirtualBox weakly (parent remains NULL so far) */
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncHRESULT DHCPServer::saveSettings(settings::DHCPServer &data)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMGETTER(NetworkName) (BSTR *aName)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMGETTER(Enabled) (BOOL *aEnabled)
4d0b8f024a4654c1f61c8c4b7e16320719f7fea4vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMSETTER(Enabled) (BOOL aEnabled)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync // save the global settings; for that we should hold only the VirtualBox lock
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMGETTER(IPAddress) (BSTR *aIPAddress)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMGETTER(NetworkMask) (BSTR *aNetworkMask)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMGETTER(LowerIP) (BSTR *aIPAddress)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::COMGETTER(UpperIP) (BSTR *aIPAddress)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::SetConfiguration (IN_BSTR aIPAddress, IN_BSTR aNetworkMask, IN_BSTR aLowerIP, IN_BSTR aUpperIP)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync if (FAILED(autoCaller.rc())) return autoCaller.rc();
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync // save the global settings; for that we should hold only the VirtualBox lock
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync AutoWriteLock vboxLock(mVirtualBox COMMA_LOCKVAL_SRC_POS);
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsyncSTDMETHODIMP DHCPServer::Start(IN_BSTR aNetworkName, IN_BSTR aTrunkName, IN_BSTR aTrunkType)
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync /* Silently ignore attepmts to run disabled servers. */
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync m.dhcp.setOption(DHCPCFG_NETNAME, Utf8Str(aNetworkName), true);
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync m.dhcp.setOption(DHCPCFG_TRUNKNAME, Utf8Str(tmp), true);
590bfe12ce22cd3716448fbb9f4dc51664bfe5e2vboxsync m.dhcp.setOption(DHCPCFG_TRUNKTYPE, Utf8Str(aTrunkType), true);
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync //temporary hack for testing
e87df5a63825a4aed74b06f10229ee463b26f5c1vboxsync // DHCPCFG_NAME