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) — 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. :)
(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
https://hg.mozilla.org/comm-central/rev/b9bda3682a08
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: