diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2024-06-10 09:00:13 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2024-06-10 09:01:14 -0700 |
| commit | 5cc444c89968dda9060d4e2f458b1babb9b603cd (patch) | |
| tree | 3ee4a40710a18996d3673ac5f260df7c5ccd1a12 /hotline/server.go | |
| parent | c29db3dbd0491119755db5d99443dac423b2681b (diff) | |
Read banner once at startup
Diffstat (limited to 'hotline/server.go')
| -rw-r--r-- | hotline/server.go | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/hotline/server.go b/hotline/server.go index dde469d..b5bb0d5 100644 --- a/hotline/server.go +++ b/hotline/server.go @@ -2,6 +2,7 @@ package hotline import ( "bufio" + "bytes" "context" "encoding/binary" "errors" @@ -48,6 +49,7 @@ type Server struct { Config *Config ConfigDir string Logger *zap.SugaredLogger + banner []byte PrivateChatsMu sync.Mutex PrivateChats map[uint32]*PrivateChat @@ -270,6 +272,11 @@ func NewServer(configDir, netInterface string, netPort int, logger *zap.SugaredL server.Config.FileRoot = filepath.Join(configDir, server.Config.FileRoot) } + server.banner, err = os.ReadFile(filepath.Join(server.ConfigDir, server.Config.BannerFile)) + if err != nil { + return nil, fmt.Errorf("error opening banner: %w", err) + } + *server.NextGuestID = 1 if server.Config.EnableTrackerRegistration { @@ -840,8 +847,8 @@ func (s *Server) handleFileTransfer(ctx context.Context, rwc io.ReadWriter) erro switch fileTransfer.Type { case bannerDownload: - if err := s.bannerDownload(rwc); err != nil { - return err + if _, err := io.Copy(rwc, bytes.NewBuffer(s.banner)); err != nil { + return fmt.Errorf("error sending banner: %w", err) } case FileDownload: s.Stats.DownloadCounter += 1 |