Skip to content

Instantly share code, notes, and snippets.

@DanielOaks
Created September 9, 2017 10:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DanielOaks/2c0bc3cd6d17f02fe8dfbf1c419fcaa3 to your computer and use it in GitHub Desktop.
Save DanielOaks/2c0bc3cd6d17f02fe8dfbf1c419fcaa3 to your computer and use it in GitHub Desktop.
title layout work-in-progress copyrights
IRCv3 `isupport` Extension
spec
true
name email period
Daniel Oakley
daniel@danieloaks.net
2017

Notes for implementing work-in-progress version

This is a work-in-progress specification.

Software implementing this work-in-progress specification MUST NOT use the unprefixed isupport capability name. Instead, implementations SHOULD use the draft/isupport capability name to be interoperable with other software implementing a compatible work-in-progress version.

The final version of the specification will use an unprefixed capability name.

Introduction

This feature allows clients to retrieve the RPL_ISUPPORT tokens advertised by the network before registration has been completed.

Architecture

Capabilities

The draft/isupport capability indicates that the ISUPPORT command can be used. It is not CAP REQable and any attempt to REQ this capability SHOULD be replied to with a CAP NAK.

Messages

The ISUPPORT message indicates that the client wants to be sent all RPL_ISUPPORT tokens being advertised by the server.

Upon receiving the ISUPPORT message, the server MUST return one or more RPL_ISUPPORT (005) numerics containing all tokens advertised by the server.

This message can be used before connection registration has been completed.

Numerics

This specification uses the RPL_ISUPPORT numeric:

No. Label Format
005 RPL_ISUPPORT <client> <1-13 tokens> :are supported by this server

Examples

Retrieving RPL_ISUPPORT tokens during connection registration:

C: CAP LS 302
S: CAP * LS * :multi-prefix extended-join account-notify batch invite-notify tls isupport
S: CAP * LS :userhost-in-names sasl=EXTERNAL,DH-AES,DH-BLOWFISH,ECDSA-NIST256P-CHALLENGE,PLAIN
C: ISUPPORT
C: CAP REQ :multi-prefix extended-join account-notify batch invite-notify userhost-in-names
S: 005 * TOPICLEN=307 STATUSMSG=~&@%+ NETWORK=IRCv3 PREFIX=(qaohv)~&@%+ :are supported by this server
S: 005 * NICKLEN=30 MODES=12 MAXCHANNELS=50 :are supported by this server
S: CAP ACK :multi-prefix extended-join account-notify batch invite-notify userhost-in-names
C: NICK test
C: USER test 0 * :test client

<registration continues>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment