| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "remoting/host/security_key/gnubby_auth_handler.h" | 5 #include "remoting/host/security_key/gnubby_auth_handler.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 #include <unistd.h> | 8 #include <unistd.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 private: | 59 private: |
| 60 typedef std::map<int, GnubbySocket*> ActiveSockets; | 60 typedef std::map<int, GnubbySocket*> ActiveSockets; |
| 61 | 61 |
| 62 // GnubbyAuthHandler interface. | 62 // GnubbyAuthHandler interface. |
| 63 void CreateGnubbyConnection() override; | 63 void CreateGnubbyConnection() override; |
| 64 bool IsValidConnectionId(int gnubby_connection_id) const override; | 64 bool IsValidConnectionId(int gnubby_connection_id) const override; |
| 65 void SendClientResponse(int gnubby_connection_id, | 65 void SendClientResponse(int gnubby_connection_id, |
| 66 const std::string& response) override; | 66 const std::string& response) override; |
| 67 void SendErrorAndCloseConnection(int gnubby_connection_id) override; | 67 void SendErrorAndCloseConnection(int gnubby_connection_id) override; |
| 68 void SetSendMessageCallback(const SendMessageCallback& callback) override; | 68 void SetSendMessageCallback(const SendMessageCallback& callback) override; |
| 69 void SetSessionIdCallback(const SessionIdCallback& callback) override; |
| 69 size_t GetActiveConnectionCountForTest() const override; | 70 size_t GetActiveConnectionCountForTest() const override; |
| 70 void SetRequestTimeoutForTest(base::TimeDelta timeout) override; | 71 void SetRequestTimeoutForTest(base::TimeDelta timeout) override; |
| 71 | 72 |
| 72 // Starts listening for connection. | 73 // Starts listening for connection. |
| 73 void DoAccept(); | 74 void DoAccept(); |
| 74 | 75 |
| 75 // Called when a connection is accepted. | 76 // Called when a connection is accepted. |
| 76 void OnAccepted(int result); | 77 void OnAccepted(int result); |
| 77 | 78 |
| 78 // Called when a GnubbySocket has done reading. | 79 // Called when a GnubbySocket has done reading. |
| (...skipping 27 matching lines...) Expand all Loading... |
| 106 // Sockets by connection id used to process gnubbyd requests. | 107 // Sockets by connection id used to process gnubbyd requests. |
| 107 ActiveSockets active_sockets_; | 108 ActiveSockets active_sockets_; |
| 108 | 109 |
| 109 // Timeout used for a request. | 110 // Timeout used for a request. |
| 110 base::TimeDelta request_timeout_; | 111 base::TimeDelta request_timeout_; |
| 111 | 112 |
| 112 DISALLOW_COPY_AND_ASSIGN(GnubbyAuthHandlerLinux); | 113 DISALLOW_COPY_AND_ASSIGN(GnubbyAuthHandlerLinux); |
| 113 }; | 114 }; |
| 114 | 115 |
| 115 std::unique_ptr<GnubbyAuthHandler> GnubbyAuthHandler::Create( | 116 std::unique_ptr<GnubbyAuthHandler> GnubbyAuthHandler::Create( |
| 116 const SendMessageCallback& callback) { | 117 const SendMessageCallback& send_message_callback, |
| 118 const SessionIdCallback& session_id_callback) { |
| 117 std::unique_ptr<GnubbyAuthHandler> auth_handler(new GnubbyAuthHandlerLinux()); | 119 std::unique_ptr<GnubbyAuthHandler> auth_handler(new GnubbyAuthHandlerLinux()); |
| 118 auth_handler->SetSendMessageCallback(callback); | 120 auth_handler->SetSendMessageCallback(send_message_callback); |
| 119 return auth_handler; | 121 return auth_handler; |
| 120 } | 122 } |
| 121 | 123 |
| 122 void GnubbyAuthHandler::SetGnubbySocketName( | 124 void GnubbyAuthHandler::SetGnubbySocketName( |
| 123 const base::FilePath& gnubby_socket_name) { | 125 const base::FilePath& gnubby_socket_name) { |
| 124 g_gnubby_socket_name.Get() = gnubby_socket_name; | 126 g_gnubby_socket_name.Get() = gnubby_socket_name; |
| 125 } | 127 } |
| 126 | 128 |
| 127 GnubbyAuthHandlerLinux::GnubbyAuthHandlerLinux() | 129 GnubbyAuthHandlerLinux::GnubbyAuthHandlerLinux() |
| 128 : last_connection_id_(0), | 130 : last_connection_id_(0), |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 LOG(WARNING) << "Unknown gnubby-auth data connection: '" | 194 LOG(WARNING) << "Unknown gnubby-auth data connection: '" |
| 193 << gnubby_connection_id << "'"; | 195 << gnubby_connection_id << "'"; |
| 194 } | 196 } |
| 195 } | 197 } |
| 196 | 198 |
| 197 void GnubbyAuthHandlerLinux::SetSendMessageCallback( | 199 void GnubbyAuthHandlerLinux::SetSendMessageCallback( |
| 198 const SendMessageCallback& callback) { | 200 const SendMessageCallback& callback) { |
| 199 send_message_callback_ = callback; | 201 send_message_callback_ = callback; |
| 200 } | 202 } |
| 201 | 203 |
| 204 void GnubbyAuthHandlerLinux::SetSessionIdCallback( |
| 205 const SessionIdCallback& callback) { |
| 206 // SessionIdCallback is not currently used for this platform. |
| 207 NOTREACHED(); |
| 208 } |
| 209 |
| 202 size_t GnubbyAuthHandlerLinux::GetActiveConnectionCountForTest() const { | 210 size_t GnubbyAuthHandlerLinux::GetActiveConnectionCountForTest() const { |
| 203 return active_sockets_.size(); | 211 return active_sockets_.size(); |
| 204 } | 212 } |
| 205 | 213 |
| 206 void GnubbyAuthHandlerLinux::SetRequestTimeoutForTest(base::TimeDelta timeout) { | 214 void GnubbyAuthHandlerLinux::SetRequestTimeoutForTest(base::TimeDelta timeout) { |
| 207 request_timeout_ = timeout; | 215 request_timeout_ = timeout; |
| 208 } | 216 } |
| 209 | 217 |
| 210 void GnubbyAuthHandlerLinux::DoAccept() { | 218 void GnubbyAuthHandlerLinux::DoAccept() { |
| 211 int result = auth_socket_->Accept( | 219 int result = auth_socket_->Accept( |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 | 281 |
| 274 void GnubbyAuthHandlerLinux::RequestTimedOut(int gnubby_connection_id) { | 282 void GnubbyAuthHandlerLinux::RequestTimedOut(int gnubby_connection_id) { |
| 275 HOST_LOG << "Gnubby request timed out"; | 283 HOST_LOG << "Gnubby request timed out"; |
| 276 ActiveSockets::const_iterator iter = | 284 ActiveSockets::const_iterator iter = |
| 277 active_sockets_.find(gnubby_connection_id); | 285 active_sockets_.find(gnubby_connection_id); |
| 278 if (iter != active_sockets_.end()) | 286 if (iter != active_sockets_.end()) |
| 279 SendErrorAndCloseActiveSocket(iter); | 287 SendErrorAndCloseActiveSocket(iter); |
| 280 } | 288 } |
| 281 | 289 |
| 282 } // namespace remoting | 290 } // namespace remoting |
| OLD | NEW |