]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/transaction_handlers.go
Merge pull request #55 from jhalter/add_client_error_messaging
[rbdr/mobius] / hotline / transaction_handlers.go
index 8e2ef6bdcea653d699fc3080a1946aa864b264b2..3ecb6bd046ab15f5a5c11bcaf317b2532f8fd781 100644 (file)
@@ -6,7 +6,6 @@ import (
        "errors"
        "fmt"
        "gopkg.in/yaml.v3"
-       "io/ioutil"
        "math/big"
        "os"
        "path"
@@ -1001,14 +1000,14 @@ func HandleTranOldPostNews(cc *ClientConn, t *Transaction) (res []Transaction, e
        newsPost := fmt.Sprintf(newsTemplate+"\r", cc.UserName, time.Now().Format(newsDateTemplate), t.GetField(fieldData).Data)
        newsPost = strings.Replace(newsPost, "\n", "\r", -1)
 
-       // update news in memory
-       cc.Server.FlatNews = append([]byte(newsPost), cc.Server.FlatNews...)
-
        // update news on disk
-       if err := ioutil.WriteFile(cc.Server.ConfigDir+"MessageBoard.txt", cc.Server.FlatNews, 0644); err != nil {
+       if err := cc.Server.FS.WriteFile(filepath.Join(cc.Server.ConfigDir, "MessageBoard.txt"), cc.Server.FlatNews, 0644); err != nil {
                return res, err
        }
 
+       // update news in memory
+       cc.Server.FlatNews = append([]byte(newsPost), cc.Server.FlatNews...)
+
        // Notify all clients of updated news
        cc.sendAll(
                tranNewMsg,
@@ -1921,6 +1920,12 @@ func HandleMakeAlias(cc *ClientConn, t *Transaction) (res []Transaction, err err
        return res, err
 }
 
+// HandleDownloadBanner handles requests for a new banner from the server
+// Fields used in the request:
+// None
+// Fields used in the reply:
+// 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 {