for _, f := range t.Fields {
var fn FileNameWithInfo
- err = fn.UnmarshalBinary(f.Data)
+ _, err = fn.Write(f.Data)
if err != nil {
return nil, nil
}
// 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
TranLogin, nil,
NewField(FieldUserName, []byte(c.Pref.Username)),
NewField(FieldUserIconID, c.Pref.IconBytes()),
- NewField(FieldUserLogin, negateString([]byte(login))),
- NewField(FieldUserPassword, negateString([]byte(password))),
+ NewField(FieldUserLogin, encodeString([]byte(login))),
+ NewField(FieldUserPassword, encodeString([]byte(password))),
),
)
}
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)