15#include <sshpp/config.hpp>
19#include <sshpp/export.hpp>
33#include <unordered_map>
51 virtual AuthResult on_auth_gssapi_mic(
Session&, std::string_view user, std::string_view principal);
54 virtual std::shared_ptr<class ChannelHandler> on_channel_open_session(
Session&);
56 virtual void on_service_request(
Session&, std::string_view service);
57 virtual void on_disconnect(
Session&);
66 virtual bool on_pty_request(
Channel&, std::string_view term,
PtySize);
68 virtual bool on_shell_request(
Channel&);
69 virtual bool on_exec_request(
Channel&, std::string_view command);
70 virtual bool on_subsystem_request(
Channel&, std::string_view name);
71 virtual bool on_env_request(
Channel&, std::string_view name, std::string_view value);
72 virtual void on_x11_request(
Channel&,
bool single_connection, std::string_view auth_protocol,
73 std::string_view auth_cookie, std::uint32_t screen_number);
74 virtual void on_signal(
Channel&, std::string_view signal_name);
79 virtual void on_close(
Channel&);
81 virtual void on_writable(
Channel&);
90 void allow_none(std::string user);
99 std::optional<SecureString>
password;
100 std::vector<Fingerprint> public_key_fingerprints;
101 bool allow_none =
false;
103 Entry* find(std::string_view user);
104 bool record_attempt_and_check(std::string_view user);
106 std::unordered_map<std::string, Entry> entries_;
107 std::unordered_map<std::string, int> attempts_;
108 int max_attempts_ = 6;
114 using Runner = std::function<int(std::string_view command, std::istream& in, std::ostream& out,
118 bool on_exec_request(
Channel&, std::string_view command)
override;
120 void on_eof(
Channel&)
override;
124 std::string command_;
125 std::string input_buffer_;
Input byte range. Implicitly constructible from std::string_view / std::vector<std::byte>.
Definition types.hpp:54
Definition channel.hpp:36
Per-channel request/data handling. See docs/design/08 §8.6.
Definition handlers.hpp:62
virtual ~ChannelHandler()=default
Runs a fixed callback per exec request; no local process is spawned.
Definition handlers.hpp:112
CommandHandler(Runner runner)
Definition handlers.hpp:116
std::function< int(std::string_view command, std::istream &in, std::ostream &out, std::ostream &err)> Runner
Definition handlers.hpp:115
Definition handlers.hpp:42
virtual ~SessionHandler()=default
One accepted server-side connection. See docs/design/08 §8.4.
Definition server_session.hpp:32
Definition handlers.hpp:86
void set_max_attempts(int n) noexcept
Definition handlers.hpp:91
Definition server_bind.ipp:15
AuthResult
Definition handlers.hpp:38
PublicKeyState
Definition message.hpp:27
Stream
Definition channel.hpp:21
Definition channel.hpp:32