shill: vpn: Return service from VPNProvider's service_ list

BUG=chromium-os:28157
TEST=New unit test

Change-Id: Id2f1f5f336fd47d3d0c769789151386306c21c0a
Reviewed-on: https://gerrit.chromium.org/gerrit/19844
Reviewed-by: Darin Petkov <petkov@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/vpn_provider.cc b/vpn_provider.cc
index 13c4464..4f4ae2b 100644
--- a/vpn_provider.cc
+++ b/vpn_provider.cc
@@ -49,6 +49,16 @@
     return NULL;
   }
 
+  // Find a service in the provider list which matches these parameters.
+  for (vector<VPNServiceRefPtr>::const_iterator it = services_.begin();
+       it != services_.end();
+       ++it) {
+    if (type == (*it)->driver()->GetProviderType() &&
+        (*it)->GetStorageIdentifier() == storage_id) {
+      return *it;
+    }
+  }
+
   scoped_ptr<VPNDriver> driver;
   if (type == flimflam::kProviderOpenVpn) {
     driver.reset(new OpenVPNDriver(