The curse of the combination of IRC servers and IRC clients –
An example of using WEECHAT client and INSPIRCd server

Problem

Using IRC technology in varying roles as user, operator, or admin with a combination of IRC clients (e.g., IRCcloud, Quassel, The Lounge, Weechat, …) and IRC servers, this means IRC demons, (e.g. INSPIRCd, UnrealIRCd, …) one realizes that the behavior of IRC commands in many cases give not the expected behavior. The behavior depends on the following factors:

  • IRC server: The server software may implement the standard RFC1459 set of commands in different ways and add additional commands.
  • IRC client:
    • The client software may implement the standard RFC1459 set of commands in different ways and add additional commands.
    • The client may give the default commands different meanings (overwrite them), eg /commands showing the list of client commands instead of server commands.
    • The client may define abbreviations of the commands.
    • The client may interpret the commands with or without case-sensitivity, eg /commands may fail but /COMMANDS may work.
  • Role: Commands may be available for specific roles and privileges (modes) with the main roles being user, (channel) operator, and (server) operator/admin.
  • Module: Some commands, eg /samode, only work if the specific module <samode> has been loaded, which only the server admin can do after enabling it in the modules.conf file.
  • Input buffer/window: Commands may work depending whether they are entered in the main channel (0, Server status window) or a specific channel.
  • Output buffer/window: Commands may show their results in the main channel (0, Server status window) or a specific channel.

These unexpected behaviours are the result of a lack of standardization in the RFC1459 in combination with open-source development by multiple parties. Currently, server software developers and client developers refuse responsibility for documenting the use and behavior of commands for multiple, specific clients or multiple, specific servers. This creates a barrier for the use of IRC technology because things do not work and require hours of investigation and experimentation with support from server and client developers.

Workaround Solution

We are using WEECHAT client (V3.5) and INSPIRCd (V3.16.1), which is installed at irc.dhub.chat:

WEECHAT> /server add dhub irc.dhub.chat/6697 -ssl
WEECHAT> /connect dhub

Currently, you can send a command from a client to a server without client interference with one of the solutions below. For example, to show all available INSPIRCd [1,2] server-side commands in the WEECHAT [3]:

  • Use the /quote command  in the input line of the main channel (0):
    Note: WEECHAT 4.0 is now case-sensitive! Use capital letters!

    WEECHAT>/QUOTE COMMANDS
  • Define a setting in WEECHAT:
    WEECHAT>/set irc.network.send_unknown_commands on
    WEECHAT>/COMMANDS

    Table 1: Overview of using INSPIRCd server commands in WEECHAT V3.5 client [4]

References:

[1] https://www.inspircd.org

[2] https://docs.inspircd.org/3/commands/

[3] https://weechat.org

[4] https://cloud.wilmarigl.de/s/kTQi8x4nsPCCp87

 

http://wilmarigl.de

de_DE_formalGerman