Browse Source

remove client join time tracking

tags/v2.2.0-rc1
Shivaram Lingamneni 4 years ago
parent
commit
bfeba1f2f3
2 changed files with 6 additions and 23 deletions
  1. 5
    16
      irc/channel.go
  2. 1
    7
      irc/handlers.go

+ 5
- 16
irc/channel.go View File

@@ -30,7 +30,6 @@ type Channel struct {
30 30
 	key               string
31 31
 	members           MemberSet
32 32
 	membersCache      []*Client // allow iteration over channel members without holding the lock
33
-	memberJoinTimes   map[*Client]time.Time
34 33
 	name              string
35 34
 	nameCasefolded    string
36 35
 	server            *Server
@@ -58,12 +57,11 @@ func NewChannel(s *Server, name, casefoldedName string, registered bool) *Channe
58 57
 	config := s.Config()
59 58
 
60 59
 	channel := &Channel{
61
-		createdTime:     time.Now().UTC(), // may be overwritten by applyRegInfo
62
-		members:         make(MemberSet),
63
-		memberJoinTimes: make(map[*Client]time.Time),
64
-		name:            name,
65
-		nameCasefolded:  casefoldedName,
66
-		server:          s,
60
+		createdTime:    time.Now().UTC(), // may be overwritten by applyRegInfo
61
+		members:        make(MemberSet),
62
+		name:           name,
63
+		nameCasefolded: casefoldedName,
64
+		server:         s,
67 65
 	}
68 66
 
69 67
 	channel.initializeLists()
@@ -553,13 +551,6 @@ func (channel *Channel) ClientModeStrings(client *Client) (result []string) {
553 551
 	return
554 552
 }
555 553
 
556
-func (channel *Channel) ClientJoinTime(client *Client) time.Time {
557
-	channel.stateMutex.RLock()
558
-	defer channel.stateMutex.RUnlock()
559
-	time := channel.memberJoinTimes[client]
560
-	return time
561
-}
562
-
563 554
 func (channel *Channel) ClientHasPrivsOver(client *Client, target *Client) bool {
564 555
 	channel.stateMutex.RLock()
565 556
 	founder := channel.registeredFounder
@@ -736,7 +727,6 @@ func (channel *Channel) Join(client *Client, key string, isSajoin bool, rb *Resp
736 727
 			defer channel.stateMutex.Unlock()
737 728
 
738 729
 			channel.members.Add(client)
739
-			channel.memberJoinTimes[client] = time.Now().UTC()
740 730
 			firstJoin := len(channel.members) == 1
741 731
 			newChannel := firstJoin && channel.registeredFounder == ""
742 732
 			if newChannel {
@@ -1375,7 +1365,6 @@ func (channel *Channel) Quit(client *Client) {
1375 1365
 
1376 1366
 		channel.stateMutex.Lock()
1377 1367
 		channel.members.Remove(client)
1378
-		delete(channel.memberJoinTimes, client)
1379 1368
 		channelEmpty := len(channel.members) == 0
1380 1369
 		channel.stateMutex.Unlock()
1381 1370
 		channel.regenerateMembersCache()

+ 1
- 7
irc/handlers.go View File

@@ -939,13 +939,7 @@ func extjwtHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Re
939 939
 		claims["joined"] = 0
940 940
 		claims["cmodes"] = []string{}
941 941
 		if channel.hasClient(client) {
942
-			joinTime := channel.ClientJoinTime(client)
943
-			if joinTime.IsZero() {
944
-				// shouldn't happen, only in races
945
-				rb.Add(nil, server.name, "FAIL", "EXTJWT", "UNKNOWN_ERROR", client.t("Channel join time is inconsistent, JWT not generated"))
946
-				return false
947
-			}
948
-			claims["joined"] = joinTime.Unix()
942
+			claims["joined"] = 1
949 943
 			claims["cmodes"] = channel.ClientModeStrings(client)
950 944
 		}
951 945
 	}

Loading…
Cancel
Save