shill: vpn: Conditionally build VPN support into shill.

VPN is disabled if SHILL_VPN=0 is passed to the Makefile.

BUG=chromium-os:39329
TEST=Together with I9e4d5741cbdcd99c9c109259167d87dbff04ee7a:
- FEATURES=test emerge-lumpy shill;
- After unmerging dependencies, FEATURES=test USE=-vpn emerge-lumpy shill
- Connected to OpenVPN successfully with default USE flags.
- Tested connectivity with shill with no VPN support.

Change-Id: I480a5911a4310ff9f80ca312db2a1bc3fe67bbd1
Reviewed-on: https://gerrit.chromium.org/gerrit/45740
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Darin Petkov <petkov@chromium.org>
Tested-by: Darin Petkov <petkov@chromium.org>
diff --git a/vpn_provider.cc b/vpn_provider.cc
index 754b1a1..dbadcbc 100644
--- a/vpn_provider.cc
+++ b/vpn_provider.cc
@@ -144,6 +144,13 @@
                                             Error *error) {
   SLOG(VPN, 2) << __func__ << " type " << type << " name " << name
                << " storage id " << storage_id;
+#if defined(DISABLE_VPN)
+
+  Error::PopulateAndLog(error, Error::kNotSupported, "VPN is not supported.");
+  return NULL;
+
+#else
+
   scoped_ptr<VPNDriver> driver;
   if (type == flimflam::kProviderOpenVpn) {
     driver.reset(new OpenVPNDriver(
@@ -170,6 +177,8 @@
   manager_->RegisterService(service);
 
   return service;
+
+#endif  // DISABLE_VPN
 }
 
 VPNServiceRefPtr VPNProvider::FindService(const std::string &type,