diff options
Diffstat (limited to 'server/user.go')
| -rw-r--r-- | server/user.go | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/server/user.go b/server/user.go index cc8c160..af3e1a6 100644 --- a/server/user.go +++ b/server/user.go @@ -127,20 +127,25 @@ func (s *Server) handleUserPayload(user *User, sender net.Conn, payload any) err } func (s *Server) handleUsermode(user *User, conn net.Conn, mode core.Usermode) error { - addr, err := core.ReadAddr(mode.UserAddr) + userAddr, err := core.ReadAddr(mode.UserAddr) if err != nil { return err } - if user.Name != addr.Channel { + chanAddr, err := core.ReadAddr(mode.ChannelName) + if err != nil { + return err + } + + if user.Name != userAddr.Channel { log.Println("unauthorized") return user.Send(conn, core.Error{core.ErrorUnauthorized}) } s.channelsMu.RLock() - channel, ok := s.channels[mode.ChannelName] + channel, ok := s.channels[chanAddr.Channel] if !ok { - log.Println("not found", addr.Channel) + log.Println("not found", userAddr.Channel) return user.Send(conn, core.Error{core.ErrorNotFound}) } s.channelsMu.RUnlock() |
