Skip to content

Document invite list variant madness #42

Closed
@jwheare

Description

@jwheare

Related to #41

Firstly, RPL_ENDOFINVITELIST 347 is mislabelled as 349 on modern, but perhaps we should also mention the mess of compatibility that is invite lists.

Firstly, invite lists can mean two things:

  • Lists of invex masks for a channel (INVEX)
  • Channels that you have been invited to (chan invites)

InspIRCd demonstrates this the best by reusing the numerics for both lists, but with different argument lists (so it is at least parseable)

# Lists masks with an invite exception (invex)
-> MODE #chan +I
   <- :irc.example.com 346 nick #chan invitee!*@* inviter 1496743061
   <- :irc.example.com 347 nick #chan :End of Channel Invite Exception List

# Lists channels you've been invited to with INVITE
-> INVITE
   <- :irc.example.com 346 nick :#chan1
   <- :irc.example.com 346 nick :#chan2
   <- :irc.example.com 347 nick :End of INVITE list

A quick review of other ircds:

  • ircu2.10.12.13: Only supports 346/347 for chan invites (says IRCnet, Undernet extension), no invex support
  • charybdis 3.5.3 and 4-rc3: Only supports 346/347 for invex lists, no chan invite support
  • inspircd 2.0.23 + 3.0.0a1: As above, uses 346/347 for both invex (via a module) and chan invites (builtin, says stolen from ircu2)
  • unreal 3.2.10.7 + 4.0.9: Uses 346/347 for invex (calls them RPL_INVEXLIST and RPL_ENDOFINVEXLIST) and uses 336/337 for chan invites. Those numerics are used for various whois extensions in other ircds

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions