From 6065b66756f3a0d645da289cbca5c772fc9f1258 Mon Sep 17 00:00:00 2001 From: Zoffix Znet Date: Fri, 29 Jul 2016 17:30:03 -0400 Subject: Finish documenting big picture --- docs/04-big-picture-behaviour.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/docs/04-big-picture-behaviour.md b/docs/04-big-picture-behaviour.md index 17513c4..f655eb9 100644 --- a/docs/04-big-picture-behaviour.md +++ b/docs/04-big-picture-behaviour.md @@ -1,3 +1,37 @@ [[back to main docs]](../README.md#documentation-map) # Big-Picture Behaviour + +This document describes the general behaviour of the `IRC::Client` clients. + +## 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. -- cgit v1.1