shill: vpn: Setup OpenVPN management channel options and open/close channel.
BUG=chromium-os:26994
TEST=unit tests
Change-Id: I9da18c7aa2f93671dc2134f531d72d626b34443e
Reviewed-on: https://gerrit.chromium.org/gerrit/19290
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/openvpn_driver.h b/openvpn_driver.h
index 8e87305..1470454 100644
--- a/openvpn_driver.h
+++ b/openvpn_driver.h
@@ -18,6 +18,7 @@
#include "shill/refptr_types.h"
#include "shill/rpc_task.h"
#include "shill/service.h"
+#include "shill/sockets.h"
#include "shill/vpn_driver.h"
namespace shill {
@@ -28,6 +29,7 @@
class EventDispatcher;
class Manager;
class Metrics;
+class OpenVPNManagementServer;
class OpenVPNDriver : public VPNDriver,
public RPCTaskDelegate {
@@ -66,6 +68,16 @@
KeyValueStore *args() { return &args_; }
+ // Returns true if an opton was appended.
+ bool AppendValueOption(const std::string &property,
+ const std::string &option,
+ std::vector<std::string> *options);
+
+ // Returns true if a flag was appended.
+ bool AppendFlag(const std::string &property,
+ const std::string &option,
+ std::vector<std::string> *options);
+
private:
friend class OpenVPNDriverTest;
FRIEND_TEST(OpenVPNDriverTest, AppendFlag);
@@ -123,12 +135,6 @@
void InitOptions(std::vector<std::string> *options, Error *error);
- void AppendValueOption(const std::string &property,
- const std::string &option,
- std::vector<std::string> *options);
- void AppendFlag(const std::string &property,
- const std::string &option,
- std::vector<std::string> *options);
bool PinHostRoute(const IPConfig::Properties &properties);
bool SpawnOpenVPN();
@@ -148,6 +154,8 @@
DeviceInfo *device_info_;
GLib *glib_;
KeyValueStore args_;
+ Sockets sockets_;
+ scoped_ptr<OpenVPNManagementServer> management_server_;
VPNServiceRefPtr service_;
scoped_ptr<RPCTask> rpc_task_;