Commit Graph

423 Commits

Author SHA1 Message Date
Mark Veidemanis 5d09e1ade7 Fix syntax error in reg command 2020-11-01 18:50:17 +00:00
Mark Veidemanis 19e04dbf36 Implement setting modes in ZNC 2020-11-01 03:39:32 +00:00
Mark Veidemanis abdfc48b95 Prepare command loader for reloading commands 2020-11-01 03:38:47 +00:00
Mark Veidemanis f7e1f2d221 Implement registration at net-level 2020-11-01 03:37:29 +00:00
Mark Veidemanis a78e05c0c3 Clarify message output on confirm command 2020-11-01 03:36:23 +00:00
Mark Veidemanis e22349802b Log error when ZNC says a channel can't be joined 2020-10-31 23:58:51 +00:00
Mark Veidemanis b652b11335 Fix registration cancellation bug in regproc 2020-10-31 23:58:03 +00:00
Mark Veidemanis 49fd03304d Fix various bugs and off by one with provisioning 2020-10-31 23:55:11 +00:00
Mark Veidemanis b0eaa7fd47 Move WHO and NAMES logging to trace 2020-10-31 16:52:00 +00:00
Mark Veidemanis 9e17223258 Don't deduplicate global messages (NICK/QUIT) 2020-10-31 16:51:24 +00:00
Mark Veidemanis d60d89dbf6 Improve authentication detection
Add a negative check in the event we are authenticated and registered,
but not confirmed, as this fools other checks.
2020-10-31 16:49:37 +00:00
Mark Veidemanis eaeb4b72c2 Use zero-padded numbers to maximise usuable ports 2020-10-31 00:13:59 +00:00
Mark Veidemanis 388cd1e4b9 Error checking in testing for registration message 2020-10-31 00:13:09 +00:00
Mark Veidemanis b986d6ac45 Deauth bot when disconnected and lowercase user 2020-10-31 00:12:06 +00:00
Mark Veidemanis c06e922749 Clarify error message to be more helpful 2020-10-31 00:11:28 +00:00
Mark Veidemanis 8deac2ab17 Implement another level of logging for tracing 2020-10-31 00:10:33 +00:00
Mark Veidemanis 4d25505625 Note that arguments to list are optional 2020-10-31 00:06:35 +00:00
Mark Veidemanis 69fbe180f1 Implement authentication checking on connection 2020-10-28 22:50:12 +00:00
Mark Veidemanis 812db95995 Add checks in dedup for time-less messages 2020-10-28 22:46:22 +00:00
Mark Veidemanis b16b5d690b Fix decoding issue with some Redis keys 2020-10-28 22:30:49 +00:00
Mark Veidemanis 6acb106761 Provision users with lowercase names 2020-10-28 22:30:04 +00:00
Mark Veidemanis 7d9a45ee91 Add the time field to some notifications 2020-10-28 22:26:41 +00:00
Mark Veidemanis 913009ab71 Fix circular import in ChanKeep/provisioning modules 2020-10-28 18:38:27 +00:00
Mark Veidemanis 82c5c2d163 Start implementing prefixes 2020-07-09 19:43:47 +01: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 2a9869d0f9 Remove condition-based monitoring system 2020-06-07 15:31:43 +01:00
Mark Veidemanis 1640955e5c Fix various bugs in the event system
Squash many bugs in the event notification system and simplify the
code.
2020-06-02 21:34:15 +01:00
Mark Veidemanis 290e0b5f87 Fix syntax error in redis query 2020-05-31 21:54:43 +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 586a337ea4 Add help for pending command 2020-05-31 16:40:51 +01:00
Mark Veidemanis 5ee53ace4c Add additional error handling in user queries 2020-05-31 13:44:34 +01:00
Mark Veidemanis 81b0450904 Function to select and merge IRC network defs 2020-05-31 13:23:09 +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 4f9ca6088b Allow sending LIST to all networks at once 2020-05-31 13:08:00 +01:00
Mark Veidemanis efb9666b6a Add confirm command
Confirm command to check which relays need manual
confirmation.
2020-05-31 12:32:12 +01:00
Mark Veidemanis aec683ccce Remove leftover irc.json file 2020-05-30 21:42:26 +01:00
Mark Veidemanis a3cdb35e05 Implement registration and confirmation of nicks 2020-05-30 21:40:10 +01:00
Mark Veidemanis d99c3c394f Restructure provisioning into fewer functions 2020-05-30 21:37:22 +01:00
Mark Veidemanis 1ac1061348 Add irc.json to gitignore 2020-05-30 21:35:50 +01:00
Mark Veidemanis 690bf93676 Fix variable scope in LIST error handling 2020-04-21 23:32:17 +01:00
Mark Veidemanis f4e5d248d5 Separate provisioning into user and auth info 2019-12-28 17:51:03 +00:00
Mark Veidemanis 97a25334aa Add IRC network definitions 2019-12-28 17:50:38 +00:00
Mark Veidemanis 06903d872e Add more comments and remove obsolete code 2019-12-07 16:35:29 +00:00
Mark Veidemanis e3e522ad1e Add requirements 2019-11-17 19:09:17 +00:00
Mark Veidemanis 9c4ea94ebd Add requirements file 2019-11-17 18:52:47 +00: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 f34de8940f Improve performance in userinfo
* Implement a nick -> user mapping, preventing a superfluous SSCAN on
the entire dataset for when networks are disconnected
* Use one thread for all channels when a network instance is
disconnected, instead of one thread per channel
* Made returns comprising of only a list into tuples
2019-10-17 20:19:35 +01:00
Mark Veidemanis a64765121a Allow multiple arguments for the logging functions 2019-10-13 12:40:16 +01:00