mIRC Homepage
Posted By: DooMaster /list issue with listing in progress - 18/09/19 08:30 AM
Hallo, Greetings from Braunau am Inn

I found a new issue on mirc, in some networks the network administrators can LOCK some irc commands, one of them is /LIST
But in mirc is causing issues and keeps saying all the time, * /list: listing in progress... error.

Informations:

-
-IRC.NetWorK.Net- The command LIST has been disabled by the network administrators
-
* /list: listing in progress...
-
* /list: listing in progress...
-
(/quote list)
-> Server: list
-
-IRC.NetWorK.Net- The command LIST has been disabled by the network administrators
-
* /list: listing in progress...
-
* /list: listing in progress...

mirc keeps saying this all the time that is in progress that seems to acting incorrect.

- GG
Posted By: Khaled Re: /list issue with listing in progress - 18/09/19 10:06 AM
Thanks for your bug report. This is by design. mIRC is waiting for the correct reply from the server to confirm that the /list request has ended, which in this case would be numeric 323.

mIRC intentionally prevents another /list request from being sent if a listing is currently in progress. This was implemented very early on in mIRC's development, when users were being regularly disconnected from servers due to sending too many /list requests. This was due to servers having difficulty coping with the bandwidth needed to repeatedly send lists to users. So mIRC tried to decrease the strain on servers by preventing users (especially new users) from queuing multiple /list requests (often by mistake, especially if there was lag and issuing a /list did not result in an immediate reply from the server). This means that when you issue a /list, mIRC will wait for numeric 323 to confirm that the listing has ended before allowing you to send another /list. There is no timeout because there is no way to know how long a listing will take. Sometimes it will take a few seconds, other times it can take several minutes. So mIRC depends on the server to send the expected numeric 323 when the listing ends or if there is no list at all.
Posted By: DooMaster Re: /list issue with listing in progress - 18/09/19 10:52 AM
Yes but in this case the ircd doesn't accepting the command at all (because it is LOCKED by config) , so the mirc there should not start the /list at all because it will always will say that /list is in progress..

Btw that error message that I provided about is into the ircd core, so you can stop the /list if you get back that server notice because it is locked.
I know that there is a way via mSL to do that on /list but because UnrealIRCD 5 will come soon in the market (now in alpha stage) they providing a new module that networks admins can LOCK any irc commands.

In InspIRCD the networks admins can lock too irc commands too but the server is sending 421 raw instead of server notice, but in UnrealIRCD 5 they not.
Posted By: Khaled Re: /list issue with listing in progress - 18/09/19 10:59 AM
Quote
Yes but in this case the ircd doesn't accepting the command at all (because it is LOCKED by config) , so the mirc there should not start the /list at all because it will always will say that /list is in progress..

How would an IRC client know that an IRC server does not support a standard IRC command?

Is the server indicating this in numeric 005 with a token?
Posted By: DooMaster Re: /list issue with listing in progress - 18/09/19 11:03 AM
Ok clear.

I will talk with UnrealIRCD devs to change it to work as InspIRCD by sending 421 raw instead of server notice, then I am gonna test it to see how will works and reply you back with more details.
Posted By: Khaled Re: /list issue with listing in progress - 18/09/19 11:17 AM
Quote
I will talk with UnrealIRCD devs to change it to work as InspIRCD by sending 421 raw instead of server notice, then I am gonna test it to see how will works and reply you back with more details.

If LIST is not supported, sending a 421 is a better way to inform the client. A NOTICE is not because it could be in many different languages, and even in the same language it could be phrased differently by different server administrators. A 421 numeric is the better way to do this.

That said, mIRC does not currently support 421 for LIST. I can add it to the next version however.
Posted By: Protopia Re: /list issue with listing in progress - 18/09/19 06:18 PM
Originally Posted by Khaled
Thanks for your bug report. This is by design. mIRC is waiting for the correct reply from the server to confirm that the /list request has ended, which in this case would be numeric 323.

mIRC intentionally prevents another /list request from being sent if a listing is currently in progress. This was implemented very early on in mIRC's development, when users were being regularly disconnected from servers due to sending too many /list requests. This was due to servers having difficulty coping with the bandwidth needed to repeatedly send lists to users. So mIRC tried to decrease the strain on servers by preventing users (especially new users) from queuing multiple /list requests (often by mistake, especially if there was lag and issuing a /list did not result in an immediate reply from the server). This means that when you issue a /list, mIRC will wait for numeric 323 to confirm that the listing has ended before allowing you to send another /list. There is no timeout because there is no way to know how long a listing will take. Sometimes it will take a few seconds, other times it can take several minutes. So mIRC depends on the server to send the expected numeric 323 when the listing ends or if there is no list at all.


I would suggest the following algorithm.

After a /list command, start a 60s timer. If a 321 or 322 or 323 numeric is received, stop the timer and then wait for a 323 numeric to be received. If after 60s a 321, 322 or 323 has not been received, assume that the server is not going to respond and allow the user to issue another /list command.
Posted By: Khaled Re: /list issue with listing in progress - 19/09/19 06:38 AM
Quote
After a /list command, start a 60s timer. If a 321 or 322 or 323 numeric is received, stop the timer and then wait for a 323 numeric to be received. If after 60s a 321, 322 or 323 has not been received, assume that the server is not going to respond and allow the user to issue another /list command.

mIRC was doing this at one point. However, users kept complaining that the timeout was too short due to lag, so I kept extending it, until I eventually decided to comment it out of the code as it no longer made sense to wait several minutes for a /list timeout.
Posted By: Protopia Re: /list issue with listing in progress - 19/09/19 09:13 AM
IMO mIRC should never have code which results in something locking out indefinitely. IMO everything should have some sort of timeout which is no longer than a typical users patience level for that function - so something that locks up the UI should have a short timeout, whereas something like /list might have a much longer timeout. But I would say that the user has to take some responsibility for not issuing too many simultaneous /list commands. And bandwidth and server power have both increased substantially over time so perhaps lagging is less prevalent too.

So perhaps 600s would be a more reasonable timeout.

Alternatively, how about a command to cancel the current /list so you can issue a new one.

Finally, how about the message being something like "* /list: Listing in progress - wait xx seconds for timeout or cancel with /cancellist."
Posted By: Raccoon Re: /list issue with listing in progress - 19/09/19 10:17 AM
Khaled, I think he just meant a 60 second timeout timer on receiving an initial LIST reply numeric, as a test to make sure that the server actually got the LIST command. Just a short primer window.

If somebody is lagging so bad (>60 seconds) AND they keep sending new /list commands to the server every 60 seconds, then that's on them. The server doesn't care anymore if you hammer them with /list commands, they've got plenty of resources today.
Posted By: Khaled Re: /list issue with listing in progress - 19/09/19 02:56 PM
Quote
I think he just meant a 60 second timeout timer on receiving an initial LIST reply numeric

That is what was implemented. Users complained about it, so it was removed.
Posted By: Sat Re: /list issue with listing in progress - 19/09/19 04:37 PM
I feel like the discussion here has skipped a step, namely..

Originally Posted by Khaled
mIRC intentionally prevents another /list request from being sent if a listing is currently in progress. This was implemented very early on in mIRC's development, when users were being regularly disconnected from servers due to sending too many /list requests. This was due to servers having difficulty coping with the bandwidth needed to repeatedly send lists to users. So mIRC tried to decrease the strain on servers by preventing users (especially new users) from queuing multiple /list requests (often by mistake, especially if there was lag and issuing a /list did not result in an immediate reply from the server).

..is this restriction, which certainly was a good thing at the time, still relevant today?
Posted By: Khaled Re: /list issue with listing in progress - 19/09/19 05:46 PM
Quote
..is this restriction, which certainly was a good thing at the time, still relevant today?

Well, the only reason we are talking about the current /list implementation is because the OP reported an issue that turns out to be due to a server not sending the correct numeric reply.

Other than that, this feature has been working well with few, if any, reports of issues for a decade or more.

So I am not really inclined to make any changes to it at this point.
Posted By: DooMaster Re: /list issue with listing in progress - 10/10/19 07:42 PM
I tried beta 2269 beta on unrealircd 5 (dev) , the IRCd replies with 421 raw if the irc-command is disabled by network admins, but the mIRC seems having the same problem and it keeps saying /list in progress

beta changelog says:

Code
33.Added 421 numeric check for server disabled LIST command.


Debug:

Code
-> IRC.NetWork.Net LIST <10000
<- :IRC.NetWork.Net 421 mynickname The command LIST has been disabled by the network administrators


This is the result of 2 times using /list command.

[Linked Image from i.imgur.com]
Posted By: Khaled Re: /list issue with listing in progress - 11/10/19 07:58 AM
Thanks for testing this out. In RFC1459, the 421 numeric is defined as:

Quote
:host 421 command :reason

The "command" needs to be specified so that a client knows which command caused the issue. In your post, it looks like UnrealIRCd is using "nickname" in place of "command"?

That said, numeric 421 as returned on almost all IRC networks changed a long time ago to this:

Quote
:host 421 nickname command :reason

This is the format that mIRC is expecting.

Update: I just tested this on UnrealIRCd v4 and v5 and they are returning:

Quote
:irc.foonet.com 421 nickname COMMAND :Unknown command

which is the expected format. Are you sure you typed the debug results in your above post correctly?

I also tested disabling the "list" command in UnrealIRCd v5 and it returned the expected 421 format which was parsed by mIRC and enabled /list again.
Posted By: DooMaster Re: /list issue with listing in progress - 11/10/19 06:23 PM
Unrealircd 5 made a change today by fixing the reply, but it seems mirc keeps stucks in /list in progress...

New debug reply:

Code
-> IRC.Network.Net LIST <10000
<- :IRC.Network.Net 421 aiaeggaeihgea :The command LIST has been disabled by the network administrators


Old debug reply:

Code
-> IRC.Network.Net LIST <10000
<- :IRC.Network.Net 421 aiaeggaeihgea The command LIST has been disabled by the network administrators


I don't know what else is the fault here and why it is working on your side and not in mine, If you want further details ask me.
Posted By: Khaled Re: /list issue with listing in progress - 11/10/19 06:29 PM
Quote
Unrealircd 5 made a change today by fixing the reply, but it seems mirc keeps stucks in /list in progress...

The 421 reply you have included in your post is still wrong. Please read my previous post?

I tested the both UnrealIRCd v4 and the latest 5.0.0-alpha3, downloaded today, which use the correct 421 format, as explained in my above post.

Which IRC server are you connecting to that shows the results you are seeing?
Posted By: DooMaster Re: /list issue with listing in progress - 11/10/19 06:30 PM
If I understood correctly you want the reply to be like below in order to work (like 421 unknown command format) right?:

Code
<- :IRC.Network.Net 421 aiaeggaeihgea LIST :The command has been disabled by the network administrators
Posted By: Khaled Re: /list issue with listing in progress - 11/10/19 06:38 PM
Quote
If I understood correctly you want the reply to be like below in order to work (like 421 unknown command format) right?

Yes, this is the 421 numeric format that IRC networks have been using for a long time. Even UnrealIRCd v4 and v5 use this format.
Posted By: DooMaster Re: /list issue with listing in progress - 11/10/19 06:48 PM
Ok I just talked with Unrealircd developer and he applied a fix for version 5 , so I tested and mirc behaves correctly now, everything seems nice and clear now.

Commit: https://github.com/unrealircd/unrealircd/commit/d55eb642e5bbc40e94663b7510ac95b993c78356
Posted By: Khaled Re: /list issue with listing in progress - 11/10/19 06:52 PM
Good to hear. Thanks again for testing it out.
© mIRC Discussion Forums