"errors"
"fmt"
"gopkg.in/yaml.v3"
+ "io"
"math/big"
"os"
"path"
if err != nil {
return res, err
}
- _, err = w.Write(hlFile.ffo.FlatFileInformationFork.MarshalBinary())
+ _, err = io.Copy(w, &hlFile.ffo.FlatFileInformationFork)
if err != nil {
return res, err
}
return res, err
}
- login := decodeString(t.GetField(FieldUserLogin).Data)
+ login := string(encodeString(t.GetField(FieldUserLogin).Data))
userName := string(t.GetField(FieldUserName).Data)
newAccessLvl := t.GetField(FieldUserAccess).Data
var userFields []Field
for _, acc := range cc.Server.Accounts {
- b := make([]byte, 0, 100)
- n, err := acc.Read(b)
+ b, err := io.ReadAll(acc)
if err != nil {
return res, err
}
- userFields = append(userFields, NewField(FieldData, b[:n]))
+ userFields = append(userFields, NewField(FieldData, b))
}
res = append(res, cc.NewReply(t, userFields...))
return res, err
}
- login := decodeString(getField(FieldData, &subFields).Data)
+ login := string(encodeString(getField(FieldData, &subFields).Data))
cc.logger.Infow("DeleteUser", "login", login)
if err := cc.Server.DeleteUser(login); err != nil {
// If FieldData is included, this is a rename operation where FieldData contains the login of the existing
// account and FieldUserLogin contains the new login.
if getField(FieldData, &subFields) != nil {
- loginToRename = decodeString(getField(FieldData, &subFields).Data)
+ loginToRename = string(encodeString(getField(FieldData, &subFields).Data))
}
- userLogin := decodeString(getField(FieldUserLogin, &subFields).Data)
+ userLogin := string(encodeString(getField(FieldUserLogin, &subFields).Data))
if loginToRename != "" {
accountToUpdate = loginToRename
} else {
}
err = cc.Server.UpdateUser(
- decodeString(getField(FieldData, &subFields).Data),
- decodeString(getField(FieldUserLogin, &subFields).Data),
+ string(encodeString(getField(FieldData, &subFields).Data)),
+ string(encodeString(getField(FieldUserLogin, &subFields).Data)),
string(getField(FieldUserName, &subFields).Data),
acc.Password,
acc.Access,
return res, err
}
- login := decodeString(t.GetField(FieldUserLogin).Data)
+ login := string(encodeString(t.GetField(FieldUserLogin).Data))
// If the account already dataFile, reply with an error
if _, ok := cc.Server.Accounts[login]; ok {
return res, nil
}
- login := decodeString(t.GetField(FieldUserLogin).Data)
+ login := string(encodeString(t.GetField(FieldUserLogin).Data))
if err := cc.Server.DeleteUser(login); err != nil {
return res, err
cats := cc.Server.GetNewsCatByPath(pathStrs)
cats[name] = NewsCategoryListData15{
Name: name,
- Type: []byte{0, 3},
+ Type: [2]byte{0, 3},
Articles: map[uint32]*NewsArtData{},
SubCats: make(map[string]NewsCategoryListData15),
}
cats := cc.Server.GetNewsCatByPath(pathStrs)
cats[name] = NewsCategoryListData15{
Name: name,
- Type: []byte{0, 2},
+ Type: [2]byte{0, 2},
Articles: map[uint32]*NewsArtData{},
SubCats: make(map[string]NewsCategoryListData15),
}
nald := cat.GetNewsArtListData()
- res = append(res, cc.NewReply(t, NewField(FieldNewsArtListData, nald.Payload())))
+ b, err := io.ReadAll(&nald)
+ if err != nil {
+
+ }
+
+ res = append(res, cc.NewReply(t, NewField(FieldNewsArtListData, b)))
return res, err
}
}
}
- if bytes.Equal(cats[delName].Type, []byte{0, 3}) {
+ if cats[delName].Type == [2]byte{0, 3} {
if !cc.Authorize(accessNewsDeleteCat) {
return append(res, cc.NewErrReply(t, "You are not allowed to delete news categories.")), nil
}
replyFields := []Field{NewField(FieldChatSubject, []byte(privChat.Subject))}
for _, c := range sortedClients(privChat.ClientConn) {
- user := User{
+
+ b, err := io.ReadAll(&User{
ID: *c.ID,
Icon: c.Icon,
Flags: c.Flags,
Name: string(c.UserName),
+ })
+ if err != nil {
+ return res, nil
}
-
- replyFields = append(replyFields, NewField(FieldUsernameWithInfo, user.Payload()))
+ replyFields = append(replyFields, NewField(FieldUsernameWithInfo, b))
}
res = append(res, cc.NewReply(t, replyFields...))