summaryrefslogtreecommitdiffstats
path: root/server/user.go
diff options
context:
space:
mode:
authorbt <bt@rctt.net>2026-05-16 22:44:38 +0200
committerbt <bt@rctt.net>2026-05-16 22:46:48 +0200
commit594ed058b3cf318a9eed2a950501efdf5114b49e (patch)
tree686b53c0b23864506a0a13f77b6ed630290ab233 /server/user.go
parent4f6c84085795b32b07a42e47dff1a8b8956ecbb9 (diff)
downloadsolec-594ed058b3cf318a9eed2a950501efdf5114b49e.tar.gz
solec-594ed058b3cf318a9eed2a950501efdf5114b49e.zip
Require full channel name in usermode
Diffstat (limited to 'server/user.go')
-rw-r--r--server/user.go13
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()