diff options
| author | bt <bt@rctt.net> | 2026-05-16 22:44:38 +0200 |
|---|---|---|
| committer | bt <bt@rctt.net> | 2026-05-16 22:46:48 +0200 |
| commit | 594ed058b3cf318a9eed2a950501efdf5114b49e (patch) | |
| tree | 686b53c0b23864506a0a13f77b6ed630290ab233 /server/user.go | |
| parent | 4f6c84085795b32b07a42e47dff1a8b8956ecbb9 (diff) | |
| download | solec-594ed058b3cf318a9eed2a950501efdf5114b49e.tar.gz solec-594ed058b3cf318a9eed2a950501efdf5114b49e.zip | |
Require full channel name in usermode
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() |
