Skip to content

Latest commit

 

History

History
44 lines (32 loc) · 1.87 KB

04-big-picture-behaviour.md

File metadata and controls

44 lines (32 loc) · 1.87 KB

[back to doc map]

Big-Picture Behaviour

This document describes the general behaviour of the IRC::Client clients.

Table of Contents


Connection Maintenance

The client is designed with the goal of being run indefinitely. As such, it will restart server connections if they close.

If a connection fails or a disconnect happens, the client will wait 10 seconds (non-blockingly) and attempt to reconnect, repeating the process if the reconnect fails too. This loop will continue indefinitely until either the connection is established or the client explicitly quits the server using the .quit method on the Client Object.

The described process applies to individual servers, regardless of how many servers the client is asked to connect to. Thus, it's possible that one server will be in the reconnect loop, while others will be connected and functioning like normal. It's also possible for the user to .quit some servers, while maintaining connection to others. The client object's .run method will return only when all servers have been .quit

Nickname Maintenance

If the first nickname assigned to the bot at the start (or one set using .nick method) is in use, the bot will automatically use the next one in the list. If all of the nicks are in use, it will wait a short period of time, before retrying all nicks again.

Note: the same system will be applied if the proposed nick is an erroneous one that cannot be used on the server—for example, it can contain invalid characters or be too long. This means the bot will never succeed in connecting to the server or changing a nick if the entire list of nicks it possesses are invalid ones. Be sure to turn the debug output on and inspect output for any suspect messages if you're having issues connecting.