aboutsummaryrefslogtreecommitdiff
path: root/hotline/server.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-10 09:00:13 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-10 09:01:14 -0700
commit5cc444c89968dda9060d4e2f458b1babb9b603cd (patch)
tree3ee4a40710a18996d3673ac5f260df7c5ccd1a12 /hotline/server.go
parentc29db3dbd0491119755db5d99443dac423b2681b (diff)
Read banner once at startup
Diffstat (limited to 'hotline/server.go')
-rw-r--r--hotline/server.go11
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