This repository has been archived by the owner on Oct 2, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
AbstractSSHConnectionHandler.go
45 lines (38 loc) · 2.07 KB
/
AbstractSSHConnectionHandler.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package sshserver
import (
"context"
"golang.org/x/crypto/ssh"
)
// AbstractSSHConnectionHandler is an empty implementation of the SSHConnectionHandler providing default methods.
type AbstractSSHConnectionHandler struct {
}
// OnUnsupportedGlobalRequest captures all global SSH requests and gives the implementation an opportunity to log
// the request.
//
// requestID is an ID uniquely identifying the request within the scope connection. The same ID may appear within
// a channel.
func (a *AbstractSSHConnectionHandler) OnUnsupportedGlobalRequest(_ uint64, _ string, _ []byte) {}
// OnUnsupportedChannel is called when a new channel is requested of an unsupported type. This gives the implementer
// the ability to log unsupported channel requests.
//
// channelID is an ID uniquely identifying the channel within the connection.
// channelType is the type of channel requested by the client. We only support the "session" channel type
// extraData contains the binary extra data submitted by the client. This is usually empty.
func (a *AbstractSSHConnectionHandler) OnUnsupportedChannel(_ uint64, _ string, _ []byte) {}
// OnSessionChannel is called when a channel of the session type is requested. The implementer must either return
// the channel result if the channel was successful, or failureReason to state why the channel
// should be rejected.
func (a *AbstractSSHConnectionHandler) OnSessionChannel(_ uint64, _ []byte, _ SessionChannel) (
channel SessionChannelHandler, failureReason ChannelRejection,
) {
return nil, NewChannelRejection(
ssh.UnknownChannelType,
ENotImplemented,
"Cannot open session channel.",
"Session channels are currently not implemented",
)
}
// OnShutdown is called when a shutdown of the SSH server is desired. The shutdownContext is passed as a deadline
// for the shutdown, after which the server should abort all running connections and return as fast as
// possible.
func (a *AbstractSSHConnectionHandler) OnShutdown(_ context.Context) {}