diff options
author | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-20 02:59:01 +0000 |
---|---|---|
committer | akalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-20 02:59:01 +0000 |
commit | 8e739f3d33ff83a605957d160cb672c6cc46528a (patch) | |
tree | a6813e19c6fe94af10d4da34b7f34390f55cb4e0 /chrome/browser/sync/engine/net | |
parent | bdd7a12d4abc0b6456f679bb077045a0147c3dfc (diff) | |
download | chromium_src-8e739f3d33ff83a605957d160cb672c6cc46528a.zip chromium_src-8e739f3d33ff83a605957d160cb672c6cc46528a.tar.gz chromium_src-8e739f3d33ff83a605957d160cb672c6cc46528a.tar.bz2 |
Implemented AddressWatchTask for OS X.
Added some utility methods to ServerConnectionManager.
BUG=32430
TEST=Manual testing with a laptop
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=36586
Review URL: http://codereview.chromium.org/543098
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36604 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/sync/engine/net')
-rw-r--r-- | chrome/browser/sync/engine/net/server_connection_manager.cc | 20 | ||||
-rw-r--r-- | chrome/browser/sync/engine/net/server_connection_manager.h | 6 |
2 files changed, 26 insertions, 0 deletions
diff --git a/chrome/browser/sync/engine/net/server_connection_manager.cc b/chrome/browser/sync/engine/net/server_connection_manager.cc index 10c6aef..bbdef87 100644 --- a/chrome/browser/sync/engine/net/server_connection_manager.cc +++ b/chrome/browser/sync/engine/net/server_connection_manager.cc @@ -19,6 +19,7 @@ #include "chrome/browser/sync/protocol/sync.pb.h" #include "chrome/browser/sync/syncable/directory_manager.h" #include "chrome/browser/sync/util/event_sys-inl.h" +#include "googleurl/src/gurl.h" namespace browser_sync { @@ -273,6 +274,13 @@ bool ServerConnectionManager::CheckServerReachable() { return server_is_reachable; } +void ServerConnectionManager::SetServerUnreachable() { + if (server_reachable_) { + server_reachable_ = false; + NotifyStatusChanged(); + } +} + void ServerConnectionManager::kill() { { AutoLock lock(terminate_all_io_mutex_); @@ -343,6 +351,18 @@ void ServerConnectionManager::GetServerParameters(string* server_url, *use_ssl = use_ssl_; } +std::string ServerConnectionManager::GetServerHost() const { + string server_url; + int port; + bool use_ssl; + GetServerParameters(&server_url, &port, &use_ssl); + // We just want the hostname, so we don't need to switch on use_ssl. + server_url = "http://" + server_url; + GURL gurl(server_url); + DCHECK(gurl.is_valid()) << gurl; + return gurl.host(); +} + bool FillMessageWithShareDetails(sync_pb::ClientToServerMessage* csm, syncable::DirectoryManager* manager, const std::string& share) { diff --git a/chrome/browser/sync/engine/net/server_connection_manager.h b/chrome/browser/sync/engine/net/server_connection_manager.h index c34d4ae..28a2e4e 100644 --- a/chrome/browser/sync/engine/net/server_connection_manager.h +++ b/chrome/browser/sync/engine/net/server_connection_manager.h @@ -214,6 +214,10 @@ class ServerConnectionManager { // Updates status and broadcasts events on change. bool CheckServerReachable(); + // Updates server status to "unreachable" and broadcasts events if + // necessary. + void SetServerUnreachable(); + // Signal the shutdown event to notify listeners. virtual void kill(); @@ -251,6 +255,8 @@ class ServerConnectionManager { int* port, bool* use_ssl) const; + std::string GetServerHost() const; + bool terminate_all_io() const { AutoLock lock(terminate_all_io_mutex_); return terminate_all_io_; |