Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parameter multiplicity of LIST #212

Open
progval opened this issue Apr 8, 2023 · 3 comments
Open

parameter multiplicity of LIST #212

progval opened this issue Apr 8, 2023 · 3 comments

Comments

@progval
Copy link
Member

progval commented Apr 8, 2023

the spec for LIST writes:

  Parameters: [<channel>{,<channel>}] [<elistcond>{,<elistcond>}]

But this seems to be wrong in practice, in several ways.

In the following tests, #chan1 has 1 user, #chan2 has 2, and #chan3 has 1:

LIST #chan1,#chan2:

  • returns nothing on hybrid/plexus4, inspircd
  • returns both #chan1 and #chan2 on: irc2, ircu2/nefarious, ngircd, unrealircd (<- current specced behavior)
  • n/a on charybdis/solanum and ergo, because LIST:1 is in TARGMAX

LIST *an1,*an2:

  • returns both #chan1 and #chan2 on: unrealircd (<- current specced behavior)
  • n/a on others (either because LIST:1 is in TARGMAX or because they don't have M in ELIST)

LIST #chan1 <1:

  • returns #chan1 on: charybdis/solanum, hybrid/plexus4, unrealircd
  • nothing on: ergo, inspircd (<- current specced behavior)
  • n/a on bahamut, irc2, ircu2/nefarious, ngircd (because they don't have U in ELIST)

LIST #chan1,#chan2 >0:

  • not tested on charybdis/solanum, hybrid/plexus4, unrealircd (considering the previous result)
  • nothing on inspircd
  • spec behavior would be to return both #chan1 and #chan2
  • n/a on bahamut, irc2, ircu2/nefarious, ngircd (because they don't have U in ELIST)
  • n/a on charybdis/solanum and ergo, because LIST:1 is in TARGMAX

(full logs: https://pr-193-6559bb34c0--radiant-beignet-ceec1b.netlify.app/irctest.server_tests.list.xhtml ; examples above are respectively from testListTwoChannels, testListTwoMasks, testListTwoParams, and testListTwoParams again)

@McParen
Copy link

McParen commented Apr 9, 2023

Hello, I commented already on the channel:

At least on solanum (libera), where I tested this,

Parameters: [<channel>{,<channel>}] [<elistcond>{,<elistcond>}]

channel (or mask) and elistcond are not two whitespace-separated params to LIST, but have to be passed as one single parameter, separated by a comma.

So this

LIST *mask* >10

doesnt work and the second parameter is ignored, but this

LIST <10,*mask*,>10

does work, because all three conditions are only one parameter.

That also seems to be the case on unreal but I only have tested it on solanum.

@progval
Copy link
Member Author

progval commented Apr 9, 2023

@McParen that's because *mask* is not a channel, it's an elist cond (ELIST=M, specifically)

@progval
Copy link
Member Author

progval commented Apr 9, 2023

and LIST #channel,>10 works too, because masks are a superset of valid channel names

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants