summaryrefslogtreecommitdiffstats
path: root/chrome/browser/sync/engine/net
diff options
context:
space:
mode:
authorakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-20 02:59:01 +0000
committerakalin@chromium.org <akalin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-20 02:59:01 +0000
commit8e739f3d33ff83a605957d160cb672c6cc46528a (patch)
treea6813e19c6fe94af10d4da34b7f34390f55cb4e0 /chrome/browser/sync/engine/net
parentbdd7a12d4abc0b6456f679bb077045a0147c3dfc (diff)
downloadchromium_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.cc20
-rw-r--r--chrome/browser/sync/engine/net/server_connection_manager.h6
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_;