aboutsummaryrefslogtreecommitdiff
path: root/hotline/transaction_handlers.go
diff options
context:
space:
mode:
authorJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-16 16:03:54 -0700
committerJeff Halter <868228+jhalter@users.noreply.github.com>2024-06-16 16:05:25 -0700
commit0ed5132769e88cb385b5240986b706430f0ccd72 (patch)
treebd622161546d9db3293ba69afc9646bcdb24b2f4 /hotline/transaction_handlers.go
parentf6f1d88969e12eadb7013397cdad3c4c5625988c (diff)
Fix broken io.Reader implementations
Diffstat (limited to 'hotline/transaction_handlers.go')
-rw-r--r--hotline/transaction_handlers.go20
1 files changed, 8 insertions, 12 deletions
diff --git a/hotline/transaction_handlers.go b/hotline/transaction_handlers.go
index 1a079f7..2d4eabd 100644
--- a/hotline/transaction_handlers.go
+++ b/hotline/transaction_handlers.go
@@ -749,7 +749,8 @@ func HandleListUsers(cc *ClientConn, t *Transaction) (res []Transaction, err err
var userFields []Field
for _, acc := range cc.Server.Accounts {
- b, err := io.ReadAll(acc)
+ accCopy := *acc
+ b, err := io.ReadAll(&accCopy)
if err != nil {
return res, err
}
@@ -1432,6 +1433,9 @@ func HandlePostNewsArt(cc *ClientConn, t *Transaction) (res []Transaction, err e
bs := make([]byte, 4)
binary.BigEndian.PutUint32(bs, convertedArtID)
+ cc.Server.mux.Lock()
+ defer cc.Server.mux.Unlock()
+
newArt := NewsArtData{
Title: string(t.GetField(FieldNewsArtTitle).Data),
Poster: string(cc.UserName),
@@ -2053,19 +2057,11 @@ func HandleMakeAlias(cc *ClientConn, t *Transaction) (res []Transaction, err err
// 107 FieldRefNum Used later for transfer
// 108 FieldTransferSize Size of data to be downloaded
func HandleDownloadBanner(cc *ClientConn, t *Transaction) (res []Transaction, err error) {
- fi, err := cc.Server.FS.Stat(filepath.Join(cc.Server.ConfigDir, cc.Server.Config.BannerFile))
- if err != nil {
- return res, err
- }
-
ft := cc.newFileTransfer(bannerDownload, []byte{}, []byte{}, make([]byte, 4))
+ binary.BigEndian.PutUint32(ft.TransferSize, uint32(len(cc.Server.banner)))
- binary.BigEndian.PutUint32(ft.TransferSize, uint32(fi.Size()))
-
- res = append(res, cc.NewReply(t,
+ return append(res, cc.NewReply(t,
NewField(FieldRefNum, ft.refNum[:]),
NewField(FieldTransferSize, ft.TransferSize),
- ))
-
- return res, err
+ )), err
}