Browse Source

fix duplicated JOIN line sent to resuming clients

Resuming clients without the resume capability would receive
two JOIN lines per channel.
tags/v2.5.0-rc1
Shivaram Lingamneni 3 years ago
parent
commit
8d44fa3c3f
1 changed files with 6 additions and 6 deletions
  1. 6
    6
      irc/channel.go

+ 6
- 6
irc/channel.go View File

@@ -993,19 +993,19 @@ func (channel *Channel) resumeAndAnnounce(session *Session) {
993 993
 	// but really we should send it to voiced clients
994 994
 	if !channel.flags.HasMode(modes.Auditorium) {
995 995
 		for _, member := range channel.Members() {
996
-			for _, session := range member.Sessions() {
997
-				if session.capabilities.Has(caps.Resume) {
996
+			for _, mSes := range member.Sessions() {
997
+				if mSes == session || mSes.capabilities.Has(caps.Resume) {
998 998
 					continue
999 999
 				}
1000 1000
 
1001
-				if session.capabilities.Has(caps.ExtendedJoin) {
1002
-					session.Send(nil, details.nickMask, "JOIN", chname, details.accountName, details.realname)
1001
+				if mSes.capabilities.Has(caps.ExtendedJoin) {
1002
+					mSes.Send(nil, details.nickMask, "JOIN", chname, details.accountName, details.realname)
1003 1003
 				} else {
1004
-					session.Send(nil, details.nickMask, "JOIN", chname)
1004
+					mSes.Send(nil, details.nickMask, "JOIN", chname)
1005 1005
 				}
1006 1006
 
1007 1007
 				if 0 < len(oldModes) {
1008
-					session.Send(nil, channel.server.name, "MODE", chname, oldModes, details.nick)
1008
+					mSes.Send(nil, channel.server.name, "MODE", chname, oldModes, details.nick)
1009 1009
 				}
1010 1010
 			}
1011 1011
 		}

Loading…
Cancel
Save