shill: openvpn: Reuse IP parameters on restart/reconnect.

When openvpn restarts (e.g., due to inactivity) and reconnects, it
doesn't provide back to the connection manager some IP configuration
options (e.g., routes), leading to VPN service misconfiguration. This
patch fixes the issue by reusing any existing IP properties if no
corresponding new property is provided.

BUG=chromium-os:32298
TEST=unit tests; tested on device by connecting to corp OpenVPN,
closing all browser windows, monitoring the log for OpenVPN restarts
and reconnects, verifying the connection after reconnect (browse to
VPN sites, /etc/resolv.conf, ip route).

Change-Id: I68c5b7aa56e1f5a7294bd26a507ca45cdc318332
Reviewed-on: https://gerrit.chromium.org/gerrit/26569
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Ready: Darin Petkov <petkov@chromium.org>
diff --git a/connection.cc b/connection.cc
index 3f76578..3a7e4c3 100644
--- a/connection.cc
+++ b/connection.cc
@@ -314,6 +314,10 @@
 bool Connection::PinHostRoute(const IPConfig::Properties &properties) {
   SLOG(Connection, 2) << __func__;
   if (properties.gateway.empty() || properties.trusted_ip.empty()) {
+    LOG_IF(ERROR, properties.gateway.empty())
+        << "No gateway -- unable to pin host route.";
+    LOG_IF(ERROR, properties.trusted_ip.empty())
+        << "No trusted IP -- unable to pin host route.";
     return false;
   }