use RunPacketBuilder in server mode

This commit is contained in:
sawka
2022-06-28 22:05:47 -07:00
parent c73691ac24
commit 4d8841a459
2 changed files with 17 additions and 5 deletions
+9 -1
View File
@@ -477,10 +477,18 @@ type ErrorPacketType struct {
Error string `json:"error"`
}
func (et *ErrorPacketType) GetType() string {
func (*ErrorPacketType) GetType() string {
return ErrorPacketStr
}
func (p *ErrorPacketType) String() string {
ckStr := ""
if p.CK != "" {
ckStr = fmt.Sprintf(", ck=%s", p.CK)
}
return fmt.Sprintf("error[%s%s]", p.Error, ckStr)
}
func MakeErrorPacket(errorStr string) *ErrorPacketType {
return &ErrorPacketType{Type: ErrorPacketStr, Error: errorStr}
}
+8 -4
View File
@@ -147,20 +147,24 @@ func RunServer() (int, error) {
initPacket := packet.MakeInitPacket()
initPacket.Version = base.MShellVersion
server.Sender.SendPacket(initPacket)
builder := packet.MakeRunPacketBuilder()
for pk := range server.MainInput.MainCh {
if server.Debug {
fmt.Printf("PK> %s\n", packet.AsString(pk))
}
if pk.GetType() == packet.RunPacketStr {
runPacket := pk.(*packet.RunPacketType)
server.runCommand(runPacket)
ok, runPacket := builder.ProcessPacket(pk)
if ok {
if runPacket != nil {
server.runCommand(runPacket)
continue
}
continue
}
if cmdPk, ok := pk.(packet.CommandPacketType); ok {
server.ProcessCommandPacket(cmdPk)
continue
}
server.Sender.SendErrorPacket(fmt.Sprintf("invalid packet '%s' sent to mshell", packet.AsExtType(pk)))
server.Sender.SendErrorPacket(fmt.Sprintf("invalid packet '%s' sent to mshell", packet.AsString(pk)))
continue
}
return 0, nil