Commit Graph

56 Commits

Author SHA1 Message Date
Mark Veidemanis 7a8cee1431
Fix debugging code in keepChannels 2022-08-15 00:08:11 +01:00
Mark Veidemanis e6527b4f9f
Add debugging code in keepChannels 2022-08-15 00:07:29 +01:00
Mark Veidemanis 8979a03bbd
Subtract one from length of list for indices 2022-08-15 00:04:49 +01:00
Mark Veidemanis f7b84913f2
Lower max_chans to length of LIST if it's shorter 2022-08-15 00:03:12 +01:00
Mark Veidemanis 5123941c79
More debugging for reg tests and getstr command 2022-08-14 11:41:29 +01:00
Mark Veidemanis 6cc07c9171
Add allRelaysActive output to network info 2022-08-14 10:58:28 +01:00
Mark Veidemanis ed1f3cdca7
Add debug statements and only check if network is connected when parting channels 2022-08-14 09:25:54 +01:00
Mark Veidemanis 15523bed96
Add more information to relay API return 2022-08-13 23:36:39 +01:00
Mark Veidemanis 653d9ea4f9
Add even more debugging 2022-08-13 23:18:56 +01:00
Mark Veidemanis f1229a76e1
Extra debugging for getting active relays 2022-08-13 23:17:26 +01:00
Mark Veidemanis 7415ca5556
Use ChanKeep system for joining channels with joinSingle 2022-08-13 21:54:14 +01:00
Mark Veidemanis 9780a2dfc8
Fully make use of ECA for multiple channels 2022-08-13 21:40:53 +01:00
Mark Veidemanis 43c5625b3b
Implement configurable chanlimit and add more fields about LIST output to Redis 2022-08-13 20:37:21 +01:00
Mark Veidemanis dd67e9cc8b
Implement ChanKeep without requiring persistent chanlimits on all networks 2022-08-13 19:20:29 +01:00
Mark Veidemanis c145e5cf18
Add some debug statements and statistics for chanlimits 2022-08-13 18:40:13 +01:00
Mark Veidemanis 5db0373731
Print message if relay is unauthenticated/disconnected 2022-08-13 14:06:34 +01:00
Mark Veidemanis 4d543f31ec
Add connected status to IRC info return and check when getting active relays 2022-08-13 13:40:33 +01:00
Mark Veidemanis 6c92e8e7d9
Reformat code 2022-08-13 13:32:22 +01:00
Mark Veidemanis 836e621063
Implement getting LIST information from API 2022-08-13 13:27:20 +01:00
Mark Veidemanis ddc9af0ddf
Add docstrings to chankeep 2022-08-12 23:53:02 +01:00
Mark Veidemanis edfb3f15eb
Implement migrating networks 2022-08-12 23:32:00 +01:00
Mark Veidemanis 14967f662c
Subtract allocated channel slots from total 2022-08-12 22:31:12 +01:00
Mark Veidemanis 0b370fc155
Improve channel allocation and write basic tests for it 2022-08-12 22:27:49 +01:00
Mark Veidemanis 719f014265
Implement best effort allocation 2022-08-11 21:44:19 +01:00
Mark Veidemanis 1ef600a9df
Simplify variable names and reformat 2022-08-11 20:51:41 +01:00
Mark Veidemanis b72a0672a5
Use ceil instead of round for relay number rounding 2022-08-11 20:46:44 +01:00
Mark Veidemanis bb3b96e7f7
Expand ECA secondary allocation algorithm 2022-08-11 20:43:34 +01:00
Mark Veidemanis c4db8ec99d
Adding more debug statements in ECA system 2022-08-11 20:36:24 +01:00
Mark Veidemanis 73b0518a8f
Print information about received LIST 2022-08-11 20:32:49 +01:00
Mark Veidemanis ea81fc80e3
Don't add 1 to current relays when iterating 2022-08-11 20:13:30 +01:00
Mark Veidemanis 8cd22888b7
Add extra debug call for allRelaysActive 2022-08-11 20:12:38 +01:00
Mark Veidemanis c983a8e3b6
Allow gaps in relay numbering 2022-08-11 19:22:09 +01:00
Mark Veidemanis 9b03485b69
More error handling when joining channels with ChanKeep 2022-08-02 09:01:24 +01:00
Mark Veidemanis 75f79cf072
Fix joining channels with inactive relays 2022-07-29 17:28:09 +01:00
Mark Veidemanis 15583bdaab
Implement relay, channel and alias management 2022-07-27 22:03:42 +01:00
Mark Veidemanis 80c016761f
Reformat again 2022-07-21 13:40:09 +01:00
Mark Veidemanis 2fecd98978
Reformat project 2022-07-21 13:40:05 +01:00
Mark Veidemanis 27cafa1def
Revert "Reformat project"
This reverts commit 64e3e1160aa76d191740342ab3edc68807f890fb.
2022-07-21 13:40:01 +01:00
Mark Veidemanis da678617d8
Reformat project 2022-07-21 13:39:59 +01:00
Mark Veidemanis 7c855e09c0
Reformat code with pre-commit 2022-07-21 13:39:41 +01:00
Mark Veidemanis 08b5dc06f0 Implement relay-independent join 2020-11-02 20:14:02 +00:00
Mark Veidemanis fe86d30155 Fix various bugs and off by one with provisioning 2020-10-31 23:55:11 +00:00
Mark Veidemanis 1fec14d759 Clarify error message to be more helpful 2020-10-31 00:11:28 +00:00
Mark Veidemanis 95ee63e399 Fix circular import in ChanKeep/provisioning modules 2020-10-28 18:38:27 +00:00
Mark Veidemanis f50a40d207
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 45070b06e2
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 91885170f1
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