From fb123f93f9f5ce42c8e5785d2f8e0edaf951740e Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Wed, 26 Mar 2014 19:21:20 +0000 Subject: Imported from /home/lorry/working-area/delta_VirtualBox/VirtualBox-4.3.10.tar.bz2. --- src/VBox/Main/include/NATNetworkServiceRunner.h | 70 +++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/VBox/Main/include/NATNetworkServiceRunner.h (limited to 'src/VBox/Main/include/NATNetworkServiceRunner.h') diff --git a/src/VBox/Main/include/NATNetworkServiceRunner.h b/src/VBox/Main/include/NATNetworkServiceRunner.h new file mode 100644 index 00000000..0c39bb0d --- /dev/null +++ b/src/VBox/Main/include/NATNetworkServiceRunner.h @@ -0,0 +1,70 @@ +/* $Id: NATNetworkServiceRunner.h $ */ +/** @file + * VirtualBox Main - interface for VBox NAT Network service + */ + +/* + * Copyright (C) 2009-2010 Oracle Corporation + * + * This file is part of VirtualBox Open Source Edition (OSE), as + * available from http://www.virtualbox.org. This file is free software; + * you can redistribute it and/or modify it under the terms of the GNU + * General Public License (GPL) as published by the Free Software + * Foundation, in version 2 as it comes in the "COPYING" file of the + * VirtualBox OSE distribution. VirtualBox OSE is distributed in the + * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. + */ +#include +#include +#include +#include +#include + +typedef enum +{ + NATSCCFG_NAME = 1, + NATSCCFG_TRUNKTYPE, + NATSCCFG_MACADDRESS, + NATSCCFG_IPADDRESS, + NATSCCFG_NETMASK, + NATSCCFG_PORTFORWARD4, + NATSCCFG_PORTFORWARD6, + NATSCCFG_NOTOPT_MAXVAL +}NATSCCFG; + +#define TRUNKTYPE_WHATEVER "whatever" +#define TRUNKTYPE_SRVNAT "srvnat" + +class NATNetworkServiceRunner +{ +public: + NATNetworkServiceRunner(); + ~NATNetworkServiceRunner() { stop(); /* don't leave abandoned networks */} + + int setOption(NATSCCFG opt, const char *val, bool enabled) + { + if (opt == 0 || opt >= NATSCCFG_NOTOPT_MAXVAL) + return VERR_INVALID_PARAMETER; + if (isRunning()) + return VERR_INVALID_STATE; + + mOptions[opt] = val; + mOptionEnabled[opt] = enabled; + return VINF_SUCCESS; + } + + int setOption(NATSCCFG opt, const com::Utf8Str &val, bool enabled) + { + return setOption(opt, val.c_str(), enabled); + } + + int start(); + int stop(); + bool isRunning(); + + void detachFromServer(); +private: + com::Utf8Str mOptions[NATSCCFG_NOTOPT_MAXVAL]; + bool mOptionEnabled[NATSCCFG_NOTOPT_MAXVAL]; + RTPROCESS mProcess; +}; -- cgit v1.2.1