summaryrefslogtreecommitdiff
path: root/internal/clients/handlers/clienthandler.go
blob: 3998e9f7076ac7367b3ffca65b01c5ab79fda22f (plain)
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
package handlers

import (
	"github.com/mimecast/dtail/internal"
	"github.com/mimecast/dtail/internal/io/dlog"
)

// ClientHandler is the basic client handler interface.
type ClientHandler struct {
	baseHandler
}

var _ Handler = (*ClientHandler)(nil)

// NewClientHandler creates a new client handler.
func NewClientHandler(server string) *ClientHandler {
	dlog.Client.Debug(server, "Creating new client handler")

	return &ClientHandler{
		baseHandler{
			server:         server,
			shellStarted:   false,
			commands:       make(chan string),
			status:         -1,
			done:           internal.NewDone(),
			capabilities:   make(map[string]struct{}),
			capabilitiesCh: make(chan struct{}),
			sessionAcks:    make(chan SessionAck, 4),
		},
	}
}