diff options
Diffstat (limited to 'server')
| -rw-r--r-- | server/channel/command.go | 8 | ||||
| -rw-r--r-- | server/validate/validate.go | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/server/channel/command.go b/server/channel/command.go index e645055..05a1c7a 100644 --- a/server/channel/command.go +++ b/server/channel/command.go @@ -17,9 +17,15 @@ func (c *Channel) SendRequest(r session.Request) { m := r.Cmd.Args[0] switch m.Kind { case "m": - for k, _ := range m.Fields { + for k, v := range m.Fields { switch k { case "": + case "reply": + _, ok := c.byId[v] + if !ok { + r.Reply(proto.Fail{"bad-reply", "", nil}.Cmd()) + return + } default: r.ReplyInvalid() return diff --git a/server/validate/validate.go b/server/validate/validate.go index 9b3ff0d..7aa7db0 100644 --- a/server/validate/validate.go +++ b/server/validate/validate.go @@ -6,7 +6,7 @@ import ( ) func Name(name string) bool { - if len(Fold(name)) == 0 || len(name) > 256 { + if len(Fold(name)) == 0 || len(name) > 64 { return false } for _, r := range name { |
