X-Git-Url: https://git.r.bdr.sh/rbdr/mobius/blobdiff_plain/76d0c1f61d5981603389e6267bf62636f34bef1f..e995052ef530b1eae2d0476ff519f7225bbb481d:/hotline/client.go diff --git a/hotline/client.go b/hotline/client.go index 35a7086..3969e26 100644 --- a/hotline/client.go +++ b/hotline/client.go @@ -290,7 +290,7 @@ func handleGetFileNameList(ctx context.Context, c *Client, t *Transaction) (res for _, f := range t.Fields { var fn FileNameWithInfo - err = fn.UnmarshalBinary(f.Data) + _, err = fn.Write(f.Data) if err != nil { return nil, nil } @@ -405,11 +405,12 @@ func handleClientGetUserNameList(ctx context.Context, c *Client, t *Transaction) // fields, but shxd sneaks in FieldChatSubject (115) so it's important to filter explicitly for the expected // field type. Probably a good idea to do everywhere. if bytes.Equal(field.ID, []byte{0x01, 0x2c}) { - u, err := ReadUser(field.Data) - if err != nil { - return res, err + var user User + if _, err := user.Write(field.Data); err != nil { + return res, fmt.Errorf("unable to read user data: %w", err) } - users = append(users, *u) + + users = append(users, user) } } c.UserList = users @@ -649,7 +650,6 @@ func (c *Client) Disconnect() error { return c.Connection.Close() } - func (c *Client) HandleTransactions(ctx context.Context) error { // Create a new scanner for parsing incoming bytes into transaction tokens scanner := bufio.NewScanner(c.Connection)