More descriptive name for Rejoin.
The Connect service is a collection of functions and state needed to connect and stay connected to an IRC server, as well as authenticate with services.
Progress of a process.
Manners in which ways channels should be rejoined upon reconnecting, or upon re-execution.
Joins all channels that should be joined, as per the ConnectSettings.rejoinBehaviour setting.
Negotiate nickname and user with the server, during registration.
Flags authentication as finished and join channels.
Aborts a registration attempt and quits if the requested nickname is too long or contains invalid characters.
Quits the program if we're banned.
Receives a passed Boxed instance with the "connect" header, and calls functions based on the payload message.
Handles server capability exchange.
Joins channels and prints some Twitch warnings on end of MOTD.
Requests a UTF-8 codepage if it seems that the server supports changing such.
Upon being invited to a channel, joins it if the settings say we should.
Modifies the nickname by appending characters to the end of it.
Quits the program if we supplied a bad IRCBot.pass.
Pongs the server upon PING.
Regains nickname if the holder of the one we wanted during registration quit.
Disconnects and reconnects to the server.
Attempts to authenticate via SASL, with the EXTERNAL mechanism if a private key and/or certificate is set in the configuration file, and by PLAIN otherwise.
On SASL authentication failure, calls a CAP END to finish the CAP negotiations and finish registration.
On SASL authentication success, calls a CAP END to finish the CAP negotiations.
Records us as having joined a channel, when we join one. This is to allow us to notice when we silently fail to join something, on Twitch. As it's limited to there, gate it behind version TwitchSupport.
Resets PrinterPlugin squelching upon a successful or failed nick change. This so as to be squelching as little as possible.
Removes a channel from the list of joined channels.
Responds to ERR_NEEDPONG events by sending the text supplied as content in the IRCEvent to the server.
On Twitch, if the OAuth pass is wrong or malformed, abort and exit the program. Only deal with it if we're currently registering.
Warns the user if the server does not seem to support WHOIS queries, suggesting that they enable hostmasks mode instead.
Catch information about ourselves (notably our IDENT) from WHOIS results.
Marks registration as completed upon RPL_WELCOME (numeric 001).
Registers with/logs onto an IRC server.
Registers with the server.
Starts a looping monitor that sends a PING if we haven't received one from the server for a while. This is to ensure that dead connections are properly detected.
Tries to authenticate with services.
Constructs a SASL plain authentication token from the bot's IRCBot.account and IRCBot.password, then sends it to the server, during registration.
Settings for a ConnectService.
The Connect service handles logging onto IRC servers after having connected, as well as managing authentication to services. It also manages responding to PING requests, and capability negotiations.
The actual connection logic is in the kameloso.net module.