Skip to content

Instantly share code, notes, and snippets.

@TrainerGuy22
Last active August 29, 2015 14:03
Show Gist options
  • Save TrainerGuy22/300b410b06f5fbeacab1 to your computer and use it in GitHub Desktop.
Save TrainerGuy22/300b410b06f5fbeacab1 to your computer and use it in GitHub Desktop.

multi-net Capability Extension

Copyright (c) 2014 TrainerGuy22.

The mutli-net capability would allow for clients to have different servers handled through a single connection. This functionality is intended to bring multiplexing capabilities to IRC bouncers, with rich client integration.

This will be achieved by simply adding a net tag to every message sent between the client and the server (or, as in this capability's intended functionality, the bouncer).

Example (from the viewpoint of a bouncer):

<-- @net=freenode :irc.freenode.net 001 grawity :Welcome
<-- @net=freenode :irc.freenode.net 005 grawity CHANTYPES=#
<-- @net=atheme :irc.atheme.net 001 grawity :Welcome
<-- @net=atheme :irc.atheme.net 005 grawity CHANTYPES=#&
--> @net=freenode JOIN #znc
<-- @net=freenode :grawity!foo@bar JOIN #znc

This example would make the client respect two different servers, freenode and athemenet, within the current connection.

For WHOIS/MSG/QUERY (as well as similar commands) to work correctly, clients would need to adopt a SERVER/USER for the nickname parameter of the commands. If the SERVER part of the nickname is absent, it would send the message with @net being the network that the currently displayed channel/user is on. If the user is viewing a console, clients should request they use the SERVER/USER syntax.

Reasoning behind proposal

While working on IRC bouncer dartboard, we were working on implmenting our functionality for having more than one server connected at once through a client. We found that there was no possible way to have nicknames for different servers, in which their channels were prefixed with the server name. So, this extension was originally born as prefixed-chan.

Issues were pointed out within the draft, so the draft was rewritten as multi-net.

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