summaryrefslogtreecommitdiff
path: root/internal/server/server.go
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-09-19 13:22:59 +0300
committerPaul Buetow <paul@buetow.org>2021-10-02 12:26:29 +0300
commitfe3e68afd99d8ea246be52893730f987e138ec24 (patch)
tree726e0914730912e0a3b223f7b37facc05ba31140 /internal/server/server.go
parentabeac87aec44249bf67f1b0eca471a31086265ca (diff)
move args to config package
logger package rewrite as dlog
Diffstat (limited to 'internal/server/server.go')
-rw-r--r--internal/server/server.go52
1 files changed, 26 insertions, 26 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index a20737e..a8f541b 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -9,7 +9,7 @@ import (
"strings"
"github.com/mimecast/dtail/internal/config"
- "github.com/mimecast/dtail/internal/io/logger"
+ "github.com/mimecast/dtail/internal/io/dlog"
"github.com/mimecast/dtail/internal/server/handlers"
"github.com/mimecast/dtail/internal/ssh/server"
user "github.com/mimecast/dtail/internal/user/server"
@@ -36,7 +36,7 @@ type Server struct {
// New returns a new server.
func New() *Server {
- logger.Info("Creating server", version.String())
+ dlog.Server.Info("Creating server", version.String())
s := Server{
sshServerConfig: &gossh.ServerConfig{},
@@ -51,7 +51,7 @@ func New() *Server {
private, err := gossh.ParsePrivateKey(server.PrivateHostKey())
if err != nil {
- logger.FatalExit(err)
+ dlog.Server.FatalPanic(err)
}
s.sshServerConfig.AddHostKey(private)
@@ -60,14 +60,14 @@ func New() *Server {
// Start the server.
func (s *Server) Start(ctx context.Context) int {
- logger.Info("Starting server")
+ dlog.Server.Info("Starting server")
bindAt := fmt.Sprintf("%s:%d", config.Server.SSHBindAddress, config.Common.SSHPort)
- logger.Info("Binding server", bindAt)
+ dlog.Server.Info("Binding server", bindAt)
listener, err := net.Listen("tcp", bindAt)
if err != nil {
- logger.FatalExit("Failed to open listening TCP socket", err)
+ dlog.Server.FatalPanic("Failed to open listening TCP socket", err)
}
go s.stats.start(ctx)
@@ -82,7 +82,7 @@ func (s *Server) Start(ctx context.Context) int {
}
func (s *Server) listenerLoop(ctx context.Context, listener net.Listener) {
- logger.Debug("Starting listener loop")
+ dlog.Server.Debug("Starting listener loop")
for {
conn, err := listener.Accept() // Blocking
@@ -92,12 +92,12 @@ func (s *Server) listenerLoop(ctx context.Context, listener net.Listener) {
return
default:
}
- logger.Error("Failed to accept incoming connection", err)
+ dlog.Server.Error("Failed to accept incoming connection", err)
continue
}
if err := s.stats.serverLimitExceeded(); err != nil {
- logger.Error(err)
+ dlog.Server.Error(err)
conn.Close()
continue
}
@@ -107,11 +107,11 @@ func (s *Server) listenerLoop(ctx context.Context, listener net.Listener) {
}
func (s *Server) handleConnection(ctx context.Context, conn net.Conn) {
- logger.Info("Handling connection")
+ dlog.Server.Info("Handling connection")
sshConn, chans, reqs, err := gossh.NewServerConn(conn, s.sshServerConfig)
if err != nil {
- logger.Error("Something just happened", err)
+ dlog.Server.Error("Something just happened", err)
return
}
@@ -125,29 +125,29 @@ func (s *Server) handleConnection(ctx context.Context, conn net.Conn) {
func (s *Server) handleChannel(ctx context.Context, sshConn gossh.Conn, newChannel gossh.NewChannel) {
user := user.New(sshConn.User(), sshConn.RemoteAddr().String())
- logger.Info(user, "Invoking channel handler")
+ dlog.Server.Info(user, "Invoking channel handler")
if newChannel.ChannelType() != "session" {
err := errors.New("Don'w allow other channel types than session")
- logger.Error(user, err)
+ dlog.Server.Error(user, err)
newChannel.Reject(gossh.Prohibited, err.Error())
return
}
channel, requests, err := newChannel.Accept()
if err != nil {
- logger.Error(user, "Could not accept channel", err)
+ dlog.Server.Error(user, "Could not accept channel", err)
return
}
if err := s.handleRequests(ctx, sshConn, requests, channel, user); err != nil {
- logger.Error(user, err)
+ dlog.Server.Error(user, err)
sshConn.Close()
}
}
func (s *Server) handleRequests(ctx context.Context, sshConn gossh.Conn, in <-chan *gossh.Request, channel gossh.Channel, user *user.User) error {
- logger.Info(user, "Invoking request handler")
+ dlog.Server.Info(user, "Invoking request handler")
for req := range in {
var payload = struct{ Value string }{}
@@ -190,10 +190,10 @@ func (s *Server) handleRequests(ctx context.Context, sshConn gossh.Conn, in <-ch
go func() {
if err := sshConn.Wait(); err != nil && err != io.EOF {
- logger.Error(user, err)
+ dlog.Server.Error(user, err)
}
s.stats.decrementConnections()
- logger.Info(user, "Good bye Mister!")
+ dlog.Server.Info(user, "Good bye Mister!")
terminate()
}()
@@ -216,7 +216,7 @@ func (s *Server) Callback(c gossh.ConnMetadata, authPayload []byte) (*gossh.Perm
user := user.New(c.User(), c.RemoteAddr().String())
if config.ServerRelaxedAuthEnable {
- logger.Fatal(user, "Granting permissions via relaxed-auth")
+ dlog.Server.Fatal(user, "Granting permissions via relaxed-auth")
return nil, nil
}
@@ -228,20 +228,20 @@ func (s *Server) Callback(c gossh.ConnMetadata, authPayload []byte) (*gossh.Perm
switch user.Name {
case config.ControlUser:
if authInfo == config.ControlUser {
- logger.Debug(user, "Granting permissions to control user")
+ dlog.Server.Debug(user, "Granting permissions to control user")
return nil, nil
}
case config.ScheduleUser:
for _, job := range config.Server.Schedule {
if s.backgroundCanSSH(user, authInfo, remoteIP, job.Name, job.AllowFrom) {
- logger.Debug(user, "Granting SSH connection")
+ dlog.Server.Debug(user, "Granting SSH connection")
return nil, nil
}
}
case config.ContinuousUser:
for _, job := range config.Server.Continuous {
if s.backgroundCanSSH(user, authInfo, remoteIP, job.Name, job.AllowFrom) {
- logger.Debug(user, "Granting SSH connection")
+ dlog.Server.Debug(user, "Granting SSH connection")
return nil, nil
}
}
@@ -252,22 +252,22 @@ func (s *Server) Callback(c gossh.ConnMetadata, authPayload []byte) (*gossh.Perm
}
func (s *Server) backgroundCanSSH(user *user.User, jobName, remoteIP, allowedJobName string, allowFrom []string) bool {
- logger.Debug("backgroundCanSSH", user, jobName, remoteIP, allowedJobName, allowFrom)
+ dlog.Server.Debug("backgroundCanSSH", user, jobName, remoteIP, allowedJobName, allowFrom)
if jobName != allowedJobName {
- logger.Debug(user, jobName, "backgroundCanSSH", "Job name does not match, skipping to next one...", allowedJobName)
+ dlog.Server.Debug(user, jobName, "backgroundCanSSH", "Job name does not match, skipping to next one...", allowedJobName)
return false
}
for _, myAddr := range allowFrom {
ips, err := net.LookupIP(myAddr)
if err != nil {
- logger.Debug(user, jobName, "backgroundCanSSH", "Unable to lookup IP address for allowed hosts lookup, skipping to next one...", myAddr, err)
+ dlog.Server.Debug(user, jobName, "backgroundCanSSH", "Unable to lookup IP address for allowed hosts lookup, skipping to next one...", myAddr, err)
continue
}
for _, ip := range ips {
- logger.Debug(user, jobName, "backgroundCanSSH", "Comparing IP addresses", remoteIP, ip.String())
+ dlog.Server.Debug(user, jobName, "backgroundCanSSH", "Comparing IP addresses", remoteIP, ip.String())
if remoteIP == ip.String() {
return true
}