| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "sync/internal_api/syncapi_server_connection_manager.h" | 5 #include "sync/internal_api/syncapi_server_connection_manager.h" |
| 6 | 6 |
| 7 #include "net/base/net_errors.h" | 7 #include "net/base/net_errors.h" |
| 8 #include "net/http/http_status_code.h" | 8 #include "net/http/http_status_code.h" |
| 9 #include "sync/internal_api/public/http_post_provider_factory.h" | 9 #include "sync/internal_api/public/http_post_provider_factory.h" |
| 10 #include "sync/internal_api/public/http_post_provider_interface.h" | 10 #include "sync/internal_api/public/http_post_provider_interface.h" |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 post_provider_ = NULL; | 24 post_provider_ = NULL; |
| 25 } | 25 } |
| 26 | 26 |
| 27 bool SyncAPIBridgedConnection::Init(const char* path, | 27 bool SyncAPIBridgedConnection::Init(const char* path, |
| 28 const std::string& auth_token, | 28 const std::string& auth_token, |
| 29 const std::string& payload, | 29 const std::string& payload, |
| 30 HttpResponse* response) { | 30 HttpResponse* response) { |
| 31 std::string sync_server; | 31 std::string sync_server; |
| 32 int sync_server_port = 0; | 32 int sync_server_port = 0; |
| 33 bool use_ssl = false; | 33 bool use_ssl = false; |
| 34 GetServerParams(&sync_server, &sync_server_port, &use_ssl); | 34 bool use_oauth2_token = false; |
| 35 GetServerParams(&sync_server, &sync_server_port, &use_ssl, &use_oauth2_token); |
| 35 std::string connection_url = MakeConnectionURL(sync_server, path, use_ssl); | 36 std::string connection_url = MakeConnectionURL(sync_server, path, use_ssl); |
| 36 | 37 |
| 37 HttpPostProviderInterface* http = post_provider_; | 38 HttpPostProviderInterface* http = post_provider_; |
| 38 http->SetURL(connection_url.c_str(), sync_server_port); | 39 http->SetURL(connection_url.c_str(), sync_server_port); |
| 39 | 40 |
| 40 if (!auth_token.empty()) { | 41 if (!auth_token.empty()) { |
| 41 const std::string& headers = | 42 std::string headers; |
| 42 "Authorization: GoogleLogin auth=" + auth_token; | 43 if (use_oauth2_token) |
| 44 headers = "Authorization: Bearer " + auth_token; |
| 45 else |
| 46 headers = "Authorization: GoogleLogin auth=" + auth_token; |
| 43 http->SetExtraRequestHeaders(headers.c_str()); | 47 http->SetExtraRequestHeaders(headers.c_str()); |
| 44 } | 48 } |
| 45 | 49 |
| 46 // Must be octet-stream, or the payload may be parsed for a cookie. | 50 // Must be octet-stream, or the payload may be parsed for a cookie. |
| 47 http->SetPostPayload("application/octet-stream", payload.length(), | 51 http->SetPostPayload("application/octet-stream", payload.length(), |
| 48 payload.data()); | 52 payload.data()); |
| 49 | 53 |
| 50 // Issue the POST, blocking until it finishes. | 54 // Issue the POST, blocking until it finishes. |
| 51 int error_code = 0; | 55 int error_code = 0; |
| 52 int response_code = 0; | 56 int response_code = 0; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 80 | 84 |
| 81 void SyncAPIBridgedConnection::Abort() { | 85 void SyncAPIBridgedConnection::Abort() { |
| 82 DCHECK(post_provider_); | 86 DCHECK(post_provider_); |
| 83 post_provider_->Abort(); | 87 post_provider_->Abort(); |
| 84 } | 88 } |
| 85 | 89 |
| 86 SyncAPIServerConnectionManager::SyncAPIServerConnectionManager( | 90 SyncAPIServerConnectionManager::SyncAPIServerConnectionManager( |
| 87 const std::string& server, | 91 const std::string& server, |
| 88 int port, | 92 int port, |
| 89 bool use_ssl, | 93 bool use_ssl, |
| 94 bool use_oauth2_token, |
| 90 HttpPostProviderFactory* factory) | 95 HttpPostProviderFactory* factory) |
| 91 : ServerConnectionManager(server, port, use_ssl), | 96 : ServerConnectionManager(server, port, use_ssl, use_oauth2_token), |
| 92 post_provider_factory_(factory) { | 97 post_provider_factory_(factory) { |
| 93 DCHECK(post_provider_factory_.get()); | 98 DCHECK(post_provider_factory_.get()); |
| 94 } | 99 } |
| 95 | 100 |
| 96 SyncAPIServerConnectionManager::~SyncAPIServerConnectionManager() {} | 101 SyncAPIServerConnectionManager::~SyncAPIServerConnectionManager() {} |
| 97 | 102 |
| 98 ServerConnectionManager::Connection* | 103 ServerConnectionManager::Connection* |
| 99 SyncAPIServerConnectionManager::MakeConnection() { | 104 SyncAPIServerConnectionManager::MakeConnection() { |
| 100 return new SyncAPIBridgedConnection(this, post_provider_factory_.get()); | 105 return new SyncAPIBridgedConnection(this, post_provider_factory_.get()); |
| 101 } | 106 } |
| 102 | 107 |
| 103 } // namespace syncer | 108 } // namespace syncer |
| OLD | NEW |