shill: portal: Recheck portal state
Introduce a retry interval for automatically retrying portal
checks. Also provide a Manager API method for immediately
re-checking portal status.
BUG=chromium-os:27335
TEST=New unit tests, tested on real machine, including setting
PortaCheckInterval over DBus, and using Jason's addition to
test-flimflam for 'recheck-portal'.
Change-Id: Idc7def18c6f863859e94f4d4e9f266ab2670679c
Reviewed-on: https://gerrit.chromium.org/gerrit/17367
Reviewed-by: mukesh agrawal <quiche@chromium.org>
Commit-Ready: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
diff --git a/connection.cc b/connection.cc
index bfd1962..c40fc60 100644
--- a/connection.cc
+++ b/connection.cc
@@ -87,11 +87,15 @@
routing_table_->SetDefaultMetric(interface_index_, GetMetric(is_default));
+ is_default_ = is_default;
+
if (is_default) {
resolver_->SetDNSFromLists(dns_servers_, dns_domain_search_);
+ DeviceRefPtr device = device_info_->GetDevice(interface_index_);
+ if (device) {
+ device->RequestPortalDetection();
+ }
}
-
- is_default_ = is_default;
}
void Connection::RequestRouting() {