delete(s.Accounts, login)
- return os.Remove(s.ConfigDir + "Users/" + login + ".yaml")
+ return FS.Remove(s.ConfigDir + "Users/" + login + ".yaml")
}
func (s *Server) connectedUsers() []Field {
// assume simplified hotline v1.2.3 login flow that does not require agreement
if *c.Version == nil {
c.Agreed = true
- if _, err := c.notifyNewUserHasJoined(); err != nil {
- return err
- }
+
+ c.notifyOthers(
+ *NewTransaction(
+ tranNotifyChangeUser, nil,
+ NewField(fieldUserName, c.UserName),
+ NewField(fieldUserID, *c.ID),
+ NewField(fieldUserIconID, *c.Icon),
+ NewField(fieldUserFlags, *c.Flags),
+ ),
+ )
}
c.Server.Stats.LoginCount += 1
func (s *Server) TransferFile(conn net.Conn) error {
defer func() { _ = conn.Close() }()
- buf := make([]byte, 1024)
- if _, err := conn.Read(buf); err != nil {
+ txBuf := make([]byte, 16)
+ _, err := conn.Read(txBuf)
+ if err != nil {
return err
}
var t transfer
- _, err := t.Write(buf[:16])
+ _, err = t.Write(txBuf)
if err != nil {
return err
}
}
}
case FileUpload:
- if _, err := conn.Read(buf); err != nil {
+ const buffSize = 1460
+
+ uploadBuf := make([]byte, buffSize)
+
+ _, err := conn.Read(uploadBuf)
+ if err != nil {
return err
}
- ffo := ReadFlattenedFileObject(buf)
+ ffo := ReadFlattenedFileObject(uploadBuf)
payloadLen := len(ffo.BinaryMarshal())
fileSize := int(binary.BigEndian.Uint32(ffo.FlatFileDataForkHeader.DataSize))
defer func() { _ = newFile.Close() }()
- const buffSize = 1024
-
- if _, err := newFile.Write(buf[payloadLen:]); err != nil {
+ if _, err := newFile.Write(uploadBuf[payloadLen:]); err != nil {
return err
}
receivedBytes := buffSize - payloadLen