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
Mark Veidemanis
6ad6d6dc50
Fix channel allocation when relays are provisioned
...
Fix a bug where the channel allocation algorithm failed due to
necessary relays not having been provisioned yet.
Passed the newly created relay numbers to the allocation function
and assumed their CHANMAX would be the same as all other relays for
the same network.
2019-10-12 21:40:50 +01:00
Mark Veidemanis
0321651c20
Implement fair channel allocation in ChanKeep
...
* Allocate channels to relays only if they have free space based on
their chanlimit value
* Minify channels by removing ones that are already covered before
passing them off to be joined
2019-10-12 21:05:55 +01:00