1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef REMOTING_HOST_GNUBBY_AUTH_HANDLER_H_ 6#define REMOTING_HOST_GNUBBY_AUTH_HANDLER_H_ 7 8#include <string> 9 10#include "base/basictypes.h" 11#include "base/memory/scoped_ptr.h" 12 13namespace base { 14class FilePath; 15} // namespace base 16 17namespace remoting { 18 19namespace protocol { 20class ClientStub; 21} // namespace protocol 22 23// Class responsible for proxying authentication data between a local gnubbyd 24// and the client. 25class GnubbyAuthHandler { 26 public: 27 virtual ~GnubbyAuthHandler() {} 28 29 // Creates a platform-specific GnubbyAuthHandler. 30 static scoped_ptr<GnubbyAuthHandler> Create( 31 protocol::ClientStub* client_stub); 32 33 // Specify the name of the socket to listen to gnubby requests on. 34 static void SetGnubbySocketName(const base::FilePath& gnubby_socket_name); 35 36 // A message was received from the client. 37 virtual void DeliverClientMessage(const std::string& message) = 0; 38 39 // Send data to client. 40 virtual void DeliverHostDataMessage(int connection_id, 41 const std::string& data) const = 0; 42}; 43 44} // namespace remoting 45 46#endif // REMOTING_HOST_GNUBBY_AUTH_HANDLER_H_ 47