shill: vpn: Support L2TP/IPSec services in VPNProvider.
Also, add a unit test for VPNProvider::CreateService.
BUG=chromium-os:29366
TEST=unit tests
Change-Id: I196748870003d303adb13f3f333305099af80b63
Reviewed-on: https://gerrit.chromium.org/gerrit/21038
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/vpn_provider.cc b/vpn_provider.cc
index baa9d6b..0f4c525 100644
--- a/vpn_provider.cc
+++ b/vpn_provider.cc
@@ -11,6 +11,7 @@
#include <chromeos/dbus/service_constants.h>
#include "shill/error.h"
+#include "shill/l2tp_ipsec_driver.h"
#include "shill/manager.h"
#include "shill/openvpn_driver.h"
#include "shill/profile.h"
@@ -154,6 +155,10 @@
driver.reset(new OpenVPNDriver(
control_interface_, dispatcher_, metrics_, manager_,
manager_->device_info(), manager_->glib()));
+ } else if (type == flimflam::kProviderL2tpIpsec) {
+ driver.reset(new L2TPIPSecDriver(
+ control_interface_, dispatcher_, metrics_, manager_,
+ manager_->device_info(), manager_->glib()));
} else {
Error::PopulateAndLog(
error, Error::kNotSupported, "Unsupported VPN type: " + type);