]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/client.go
Add initial support for resource and info forks
[rbdr/mobius] / hotline / client.go
index dd113c9974438e7fc14ddfdd3d06c89497c8f11e..3a6584af9384c5239efeae6d1246ee0c0923f71b 100644 (file)
@@ -10,7 +10,7 @@ import (
        "github.com/rivo/tview"
        "github.com/stretchr/testify/mock"
        "go.uber.org/zap"
-       "gopkg.in/yaml.v2"
+       "gopkg.in/yaml.v3"
        "math/big"
        "math/rand"
        "net"
@@ -61,7 +61,6 @@ func readConfig(cfgPath string) (*ClientPrefs, error) {
 
        prefs := ClientPrefs{}
        decoder := yaml.NewDecoder(fh)
-       decoder.SetStrict(true)
        if err := decoder.Decode(&prefs); err != nil {
                return nil, err
        }
@@ -104,8 +103,7 @@ func NewClient(cfgPath string, logger *zap.SugaredLogger) *Client {
 
        prefs, err := readConfig(cfgPath)
        if err != nil {
-               fmt.Printf("unable to read config file %s", cfgPath)
-               os.Exit(1)
+               logger.Fatal(fmt.Sprintf("unable to read config file %s\n", cfgPath))
        }
        c.pref = prefs
 
@@ -121,7 +119,7 @@ func (db *DebugBuffer) Write(p []byte) (int, error) {
        return db.TextView.Write(p)
 }
 
-// Sync is a noop function that exists to satisfy the zapcore.WriteSyncer interface
+// Sync is a noop function that dataFile to satisfy the zapcore.WriteSyncer interface
 func (db *DebugBuffer) Sync() error {
        return nil
 }
@@ -200,7 +198,7 @@ var clientHandlers = map[uint16]clientTHandler{
                Handler: handleTranServerMsg,
        },
        tranKeepAlive: clientTransaction{
-               Name:    "tranKeepAlive",
+               Name: "tranKeepAlive",
                Handler: func(client *Client, transaction *Transaction) (t []Transaction, err error) {
                        return t, err
                },
@@ -336,8 +334,8 @@ func handleGetMsgs(c *Client, t *Transaction) (res []Transaction, err error) {
        newsTextView.SetBorder(true).SetTitle("News")
 
        c.UI.Pages.AddPage("news", newsTextView, true, true)
-       //c.UI.Pages.SwitchToPage("news")
-       //c.UI.App.SetFocus(newsTextView)
+       // c.UI.Pages.SwitchToPage("news")
+       // c.UI.App.SetFocus(newsTextView)
        c.UI.App.Draw()
 
        return res, err
@@ -605,10 +603,10 @@ var ServerHandshake = []byte{
 }
 
 func (c *Client) Handshake() error {
-       //Protocol ID   4       ‘TRTP’      0x54 52 54 50
-       //Sub-protocol ID       4               User defined
-       //Version       2       1       Currently 1
-       //Sub-version   2               User defined
+       // Protocol ID  4       ‘TRTP’      0x54 52 54 50
+       // Sub-protocol ID      4               User defined
+       // Version      2       1       Currently 1
+       // Sub-version  2               User defined
        if _, err := c.Connection.Write(ClientHandshake); err != nil {
                return fmt.Errorf("handshake write err: %s", err)
        }
@@ -635,7 +633,6 @@ func (c *Client) LogIn(login string, password string) error {
                        NewField(fieldUserIconID, c.pref.IconBytes()),
                        NewField(fieldUserLogin, negateString([]byte(login))),
                        NewField(fieldUserPassword, negateString([]byte(password))),
-                       NewField(fieldVersion, []byte{0, 2}),
                ),
        )
 }
@@ -644,7 +641,7 @@ func (c *Client) Send(t Transaction) error {
        requestNum := binary.BigEndian.Uint16(t.Type)
        tID := binary.BigEndian.Uint32(t.ID)
 
-       //handler := TransactionHandlers[requestNum]
+       // handler := TransactionHandlers[requestNum]
 
        // if transaction is NOT reply, add it to the list to transactions we're expecting a response for
        if t.IsReply == 0 {
@@ -698,18 +695,6 @@ func (c *Client) HandleTransaction(t *Transaction) error {
        return nil
 }
 
-func (c *Client) Connected() bool {
-       // c.Agreed == true &&
-       if c.UserAccess != nil {
-               return true
-       }
-       return false
-}
-
 func (c *Client) Disconnect() error {
-       err := c.Connection.Close()
-       if err != nil {
-               return err
-       }
-       return nil
+       return c.Connection.Close()
 }