Commit Graph

56 Commits

Author SHA1 Message Date
Mark Veidemanis 8f44f34d0e Fix debugging code in keepChannels 2022-08-15 00:08:11 +01:00
Mark Veidemanis 1b68568fb7 Add debugging code in keepChannels 2022-08-15 00:07:29 +01:00
Mark Veidemanis bdb2949d17 Subtract one from length of list for indices 2022-08-15 00:04:49 +01:00
Mark Veidemanis 560af8aeb0 Lower max_chans to length of LIST if it's shorter 2022-08-15 00:03:12 +01:00
Mark Veidemanis 0b20a05b19 More debugging for reg tests and getstr command 2022-08-14 11:41:29 +01:00
Mark Veidemanis 39059084ef Add allRelaysActive output to network info 2022-08-14 10:58:28 +01:00
Mark Veidemanis feecf48b9b Add debug statements and only check if network is connected when parting channels 2022-08-14 09:25:54 +01:00
Mark Veidemanis a82355b660 Add more information to relay API return 2022-08-13 23:36:39 +01:00
Mark Veidemanis 2a3c9f80a3 Add even more debugging 2022-08-13 23:18:56 +01:00
Mark Veidemanis 3ca5a3452c Extra debugging for getting active relays 2022-08-13 23:17:26 +01:00
Mark Veidemanis fced2b7d75 Use ChanKeep system for joining channels with joinSingle 2022-08-13 21:54:14 +01:00
Mark Veidemanis 16133fb7b4 Fully make use of ECA for multiple channels 2022-08-13 21:40:53 +01:00
Mark Veidemanis 28c1a33615 Implement configurable chanlimit and add more fields about LIST output to Redis 2022-08-13 20:37:21 +01:00
Mark Veidemanis 496a3d0374 Implement ChanKeep without requiring persistent chanlimits on all networks 2022-08-13 19:20:29 +01:00
Mark Veidemanis 75965497be Add some debug statements and statistics for chanlimits 2022-08-13 18:40:13 +01:00
Mark Veidemanis 1e9dd1b223 Print message if relay is unauthenticated/disconnected 2022-08-13 14:06:34 +01:00
Mark Veidemanis facf58ec2c Add connected status to IRC info return and check when getting active relays 2022-08-13 13:40:33 +01:00
Mark Veidemanis 21ed66bc00 Reformat code 2022-08-13 13:32:22 +01:00
Mark Veidemanis 5c63fb5048 Implement getting LIST information from API 2022-08-13 13:27:20 +01:00
Mark Veidemanis acc363d207 Add docstrings to chankeep 2022-08-12 23:53:02 +01:00
Mark Veidemanis 49214644ff Implement migrating networks 2022-08-12 23:32:00 +01:00
Mark Veidemanis 20f59362ff Subtract allocated channel slots from total 2022-08-12 22:31:12 +01:00
Mark Veidemanis 065fe94cbd Improve channel allocation and write basic tests for it 2022-08-12 22:27:49 +01:00
Mark Veidemanis 8ba4831d9c Implement best effort allocation 2022-08-11 21:44:19 +01:00
Mark Veidemanis 4c040bbf78 Simplify variable names and reformat 2022-08-11 20:51:41 +01:00
Mark Veidemanis 5a4ae2153e Use ceil instead of round for relay number rounding 2022-08-11 20:46:44 +01:00
Mark Veidemanis 8c3a75b3c8 Expand ECA secondary allocation algorithm 2022-08-11 20:43:34 +01:00
Mark Veidemanis dc13515aa8 Adding more debug statements in ECA system 2022-08-11 20:36:24 +01:00
Mark Veidemanis d38f7ba1ba Print information about received LIST 2022-08-11 20:32:49 +01:00
Mark Veidemanis 87ee96dd26 Don't add 1 to current relays when iterating 2022-08-11 20:13:30 +01:00
Mark Veidemanis cc0e3b872b Add extra debug call for allRelaysActive 2022-08-11 20:12:38 +01:00
Mark Veidemanis 502b45cda5 Allow gaps in relay numbering 2022-08-11 19:22:09 +01:00
Mark Veidemanis b42c82eac2 More error handling when joining channels with ChanKeep 2022-08-02 09:01:24 +01:00
Mark Veidemanis 6359918639 Fix joining channels with inactive relays 2022-07-29 17:28:09 +01:00
Mark Veidemanis 8409a39e57 Implement relay, channel and alias management 2022-07-27 22:03:42 +01:00
Mark Veidemanis e5a14b2c91 Reformat again 2022-07-21 13:40:09 +01:00
Mark Veidemanis f4c5323de1 Reformat project 2022-07-21 13:40:05 +01:00
Mark Veidemanis 3229d9b806 Revert "Reformat project"
This reverts commit 64e3e1160aa76d191740342ab3edc68807f890fb.
2022-07-21 13:40:01 +01:00
Mark Veidemanis 760e43b59a Reformat project 2022-07-21 13:39:59 +01:00
Mark Veidemanis ff1ee63900 Reformat code with pre-commit 2022-07-21 13:39:41 +01:00
Mark Veidemanis 9c95fa8eaf Implement relay-independent join 2020-11-02 20:14:02 +00:00
Mark Veidemanis 49fd03304d Fix various bugs and off by one with provisioning 2020-10-31 23:55:11 +00:00
Mark Veidemanis c06e922749 Clarify error message to be more helpful 2020-10-31 00:11:28 +00:00
Mark Veidemanis 913009ab71 Fix circular import in ChanKeep/provisioning modules 2020-10-28 18:38:27 +00:00
Mark Veidemanis 3acf182171 Fixes to auth detection and message parsing
* don't check authentication if the network doesn't need to
  register
* don't pass through muser for ZNC type messages
* avoid duplicate message for queries containing highlights
* make a copy of the cast for metadata analysis to avoid poisoning it
* set up callback for when the instance is authenticated, so we can
  request a LIST immediately if so desired
* separate out seeding functions to populate CHANLIMIT to ease future
  work involving other options, such as PREFIX
2020-06-07 17:26:53 +01:00
Mark Veidemanis 097f100ec5 Implement authentication detection
* pending command to see which instances have never authenticated
* authcheck command to see which instances are not currently
  authenticated
2020-05-31 21:52:56 +01:00
Mark Veidemanis 5c6b626396 Check registration status before joining channels
Do not join channels if any relay for a network is unregistered.
2020-05-31 13:09:58 +01:00
Mark Veidemanis a20fcdb8fc Remove some debugging code from ChanKeep 2019-10-31 15:54:07 +00:00
Mark Veidemanis 7ffb6125aa Fix various bugs uncovered by the LIST system
* Work around Twisted's broken handling of spaces
* Work around Twisted's broken line decoding
* Don't run signedOn twice for relays
* Improved detection of whether the endpoint is connected to ZNC
* Delay a LIST until all configured relays are online
* Discard a LIST if there are no callbacks for it
* Get rid of some double-negative ternary blocks
2019-10-31 15:44:59 +00:00
Mark Veidemanis b4fa747853 Fix LIST handling and message parsing
* Always use simple LIST syntax if it succeeded once after a failed
complex query
* Reject asking for a LIST twice
* Quickly discard any ISUPPORT messages that don't contain things we
need to use
* Detect the server name and drop any messages from the server
2019-10-20 16:44:33 +01:00