Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Unified Diff: remoting/host/security_key/gnubby_auth_handler_linux.cc

Issue 1720243002: Removing Linux specific GnubbyAuthHandler header file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixing a build break Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: remoting/host/security_key/gnubby_auth_handler_linux.cc
diff --git a/remoting/host/security_key/gnubby_auth_handler_linux.cc b/remoting/host/security_key/gnubby_auth_handler_linux.cc
index 8a50686f3982c5b7e9a96aa1e0255c7e58b87610..f036434a279699f0cb03f836f5e3aa3c130c1b11 100644
--- a/remoting/host/security_key/gnubby_auth_handler_linux.cc
+++ b/remoting/host/security_key/gnubby_auth_handler_linux.cc
@@ -1,9 +1,6 @@
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-
-#include "remoting/host/security_key/gnubby_auth_handler_linux.h"
-
#include <stdint.h>
#include <unistd.h>
@@ -11,12 +8,17 @@
#include "base/files/file_util.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
+#include "base/memory/scoped_ptr.h"
#include "base/stl_util.h"
+#include "base/threading/thread_checker.h"
#include "base/threading/thread_restrictions.h"
#include "base/values.h"
+#include "net/base/completion_callback.h"
#include "net/base/net_errors.h"
+#include "net/socket/stream_socket.h"
#include "net/socket/unix_domain_server_socket_posix.h"
#include "remoting/base/logging.h"
+#include "remoting/host/security_key/gnubby_auth_handler.h"
#include "remoting/host/security_key/gnubby_socket.h"
namespace {
@@ -46,6 +48,67 @@ unsigned int GetCommandCode(const std::string& data) {
namespace remoting {
+class GnubbyAuthHandlerLinux : public GnubbyAuthHandler {
+ public:
+ GnubbyAuthHandlerLinux();
+ ~GnubbyAuthHandlerLinux() override;
+
+ private:
+ typedef std::map<int, GnubbySocket*> ActiveSockets;
+
+ // GnubbyAuthHandler interface.
+ void CreateGnubbyConnection() override;
+ bool IsValidConnectionId(int gnubby_connection_id) const override;
+ void SendClientResponse(int gnubby_connection_id,
+ const std::string& response) override;
+ void SendErrorAndCloseConnection(int gnubby_connection_id) override;
+ void SetSendMessageCallback(const SendMessageCallback& callback) override;
+ size_t GetActiveConnectionCountForTest() const override;
+ void SetRequestTimeoutForTest(const base::TimeDelta& timeout) override;
+
+ // Starts listening for connection.
+ void DoAccept();
+
+ // Called when a connection is accepted.
+ void OnAccepted(int result);
+
+ // Called when a GnubbySocket has done reading.
+ void OnReadComplete(int gnubby_connection_id);
+
+ // Gets an active socket iterator for |gnubby_connection_id|.
+ ActiveSockets::const_iterator GetSocketForConnectionId(
+ int gnubby_connection_id) const;
+
+ // Send an error and closes an active socket.
+ void SendErrorAndCloseActiveSocket(const ActiveSockets::const_iterator& iter);
+
+ // A request timed out.
+ void RequestTimedOut(int gnubby_connection_id);
+
+ // Ensures GnubbyAuthHandlerLinux methods are called on the same thread.
+ base::ThreadChecker thread_checker_;
+
+ // Socket used to listen for authorization requests.
+ scoped_ptr<net::UnixDomainServerSocket> auth_socket_;
+
+ // A temporary holder for an accepted connection.
+ scoped_ptr<net::StreamSocket> accept_socket_;
+
+ // Used to pass gnubby extension messages to the client.
+ SendMessageCallback send_message_callback_;
+
+ // The last assigned gnubby connection id.
+ int last_connection_id_;
+
+ // Sockets by connection id used to process gnubbyd requests.
+ ActiveSockets active_sockets_;
+
+ // Timeout used for a request.
+ base::TimeDelta request_timeout_;
+
+ DISALLOW_COPY_AND_ASSIGN(GnubbyAuthHandlerLinux);
+};
+
scoped_ptr<GnubbyAuthHandler> GnubbyAuthHandler::Create(
const SendMessageCallback& callback) {
scoped_ptr<GnubbyAuthHandler> auth_handler(new GnubbyAuthHandlerLinux());
@@ -133,7 +196,7 @@ void GnubbyAuthHandlerLinux::SetSendMessageCallback(
send_message_callback_ = callback;
}
-size_t GnubbyAuthHandlerLinux::GetActiveSocketsMapSizeForTest() const {
+size_t GnubbyAuthHandlerLinux::GetActiveConnectionCountForTest() const {
return active_sockets_.size();
}

Powered by Google App Engine
This is Rietveld 408576698