Closed Bug 1082501 Opened 10 years ago Closed 10 years ago

LIST fails on some servers during the first minute after connection

Categories

(Chat Core :: IRC, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: aleth, Assigned: aleth)

References

Details

(Whiteboard: [1.6-blocking])

Attachments

(1 file, 1 obsolete file)

e.g. irc.mozilla.org [14/10/2014 11:58:21] ":fripp.mozilla.org NOTICE aleth-build :*** You cannot list within the first 60 seconds of connecting. Please try again later." [14/10/2014 11:58:21] ":fripp.mozilla.org 321 aleth-build Channel :Users Name" [14/10/2014 11:58:21] ":fripp.mozilla.org 323 aleth-build :End of channel list." So we get a correct 321,323 pair, but that means we won't reattempt LIST for another hour or day or whatever the constant is.
Whiteboard: [1.6-blocking]
This is indicated by ISUPPORT SECURELIST ("This InspIRCd specific token indicates that secure listing is enabled, and that your initial request for a channel list on connect may be denied until you have been connected for a certain amount of time.") https://github.com/inspircd/inspircd/blob/master/src/modules/m_securelist.cpp
Depends on: 955595
Attached patch securelist.diff (obsolete) (deleted) — Splinter Review
Assignee: nobody → aleth
Status: NEW → ASSIGNED
Attachment #8513432 - Flags: review?(clokep)
Comment on attachment 8513432 [details] [diff] [review] securelist.diff Review of attachment 8513432 [details] [diff] [review]: ----------------------------------------------------------------- How hard would this be to add a test for? Let me know about the parseInt comment... ::: chat/protocols/irc/ircNonStandard.jsm @@ +56,5 @@ > + // pair, but no list data. > + // We fake the last LIST time so that we will retry LIST the next time > + // the user requires it after the interval specified. > + const kMinute = 60000; > + let waittime = (aMessage.params[1].split(" ")[7] * 1000) || kMinute; Doesn't this need a parseInt or something around it? Nit: waitTime @@ +57,5 @@ > + // We fake the last LIST time so that we will retry LIST the next time > + // the user requires it after the interval specified. > + const kMinute = 60000; > + let waittime = (aMessage.params[1].split(" ")[7] * 1000) || kMinute; > + this._lastListTime = Date.now() - kListRefreshInterval + waittime; This is me just being pedantic, but can you do now + waitTime - refreshInterval? It makes more sense in my head. :)
Attached patch securelist.diff v2 (deleted) — Splinter Review
(In reply to Patrick Cloke [:clokep] from comment #3) > How hard would this be to add a test for? The test we would want here is to detect whether inspircd have decided to change the string they send us, and we can't test for that. > > + let waittime = (aMessage.params[1].split(" ")[7] * 1000) || kMinute; > > Doesn't this need a parseInt or something around it? Nit: waitTime It's not needed as the multiplication enforces type conversion.
Attachment #8513432 - Attachment is obsolete: true
Attachment #8513432 - Flags: review?(clokep)
Attachment #8516860 - Flags: review?(clokep)
Attachment #8516860 - Flags: review?(clokep) → review+
Keywords: checkin-needed
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → 1.6
Blocks: 1184406
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: