3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-23 19:22:44 +01:00
Commit Graph

3588 Commits

Author SHA1 Message Date
James Lu
1cdf16f5c9 various: migrate utils.loadPlugin, getProtocolModule, resetModuleDirs calls to snake-case (#523) 2018-03-02 20:23:47 -08:00
James Lu
bea2ea8ebd plugins, coremods: migrate (un)registerService calls to snake case (#523) 2018-03-02 20:23:47 -08:00
James Lu
9e3f412f0b log: rename methods to snake case (#523) 2018-03-02 20:23:47 -08:00
James Lu
ad5a11bf34 control: skip networks that fail to initialize on rehash
This follows the launcher fix in 8321485315.
2018-03-02 20:23:47 -08:00
James Lu
a2783d74c5 unreal: bump protocol version to 4017 (no changes needed) 2018-03-02 20:23:47 -08:00
James Lu
1c3f71ac1b servermaps: assign servermaps.localmap to all opers 2018-03-02 16:18:55 -05:00
James Lu
d5d94f86e8 servermaps: split into two perms (servermaps.map and servermaps.localmap) 2018-03-02 16:14:04 -05:00
James Lu
6a90e99de4 IRCNetwork: do not break on socket BlockingIOError
On non-blocking sockets, recv() raises BlockingIOError instead of blocking when there's no data to be read.
The correct behaviour is to wait and try again instead of breaking the connection.
2018-03-01 12:52:41 -05:00
James Lu
e8e26daf05 ctcp: fix wrong logging format for unknown CTCPs 2018-03-01 02:48:04 -05:00
James Lu
5d25b3c105 ctcp: remove extraneous keyword argument
private is not defined in irc.msg()
2018-02-25 14:29:19 -05:00
James Lu
3c0809dce0 ctcp: don't use irc.reply in hook functions
This is undefined behaviour because nothing in this stack actually updates the 'last caller' variables irc.reply() use.
2018-02-24 14:19:57 -05:00
James Lu
50f8cde694 classes: make _to_lower_core and _expandPUID type-safe 2018-02-24 14:19:57 -05:00
James Lu
2aca4e39c1 RELNOTES: fill in release dates for 1.2.0, 1.2.1, 2.0-alpha1
[skip ci]
2018-02-24 01:48:26 -08:00
James Lu
a2e793755f RELNOTES: first batch of 2.0-alpha3 changes 2018-02-24 01:44:04 -08:00
James Lu
5c9639b4a9 opercmds: alias 'trace' to checkban 2018-02-21 00:12:08 -08:00
James Lu
390b7a327a example-conf: revise the example servers: section
- Remove "8P#" as a sidrange default - it does not leave adequate room for larger networks
- Move the TS6 example to near the end; it has less demand than Unreal and P10
- Consistently use "must" to describe P10 cloaking options, where any misconfiguration will lead to serious desyncs
- Bumped example autoconnect times from 5 to 10 seconds
- Add the 'netname' option to server blocks that previously didn't include it
- Comment out the 'channels' setting on each server example by default
- Various wording clarifications
2018-02-20 23:42:13 -08:00
James Lu
3d61bfd114 example-conf: revise notes for P10, TS6 servers 2018-02-20 23:26:06 -08:00
James Lu
0c2927fb1e example-conf: sort clientbot ex. options so that cb-specific ones are at the end 2018-02-20 23:23:04 -08:00
James Lu
804791b8af clientbot: support expansions ($nick, etc) in autoperform 2018-02-20 23:19:32 -08:00
James Lu
0b0da2cfe6 launcher: add experimental daemonization support
Closes #187.
2018-02-19 21:05:15 -08:00
James Lu
9cdb224c02 Replace use of conf.conf['bot'] with conf.conf['pylink'] 2018-02-18 23:26:39 -08:00
James Lu
c40250330d ctcp: log the service bot receiving CTCP messages 2018-02-18 23:13:44 -08:00
James Lu
e68db3689d Rewrite the CTCP plugin
- Extend CTCP replies to all service bots - closes #468.
- Use a generic hook handler instead of wrapping around the commands handler (#407).

This code takes advantage of the hook suppression feature introduced in 2e66b9bde6 (#547).
2018-02-18 23:11:36 -08:00
James Lu
2e66b9bde6 classes: allow hook functions to block further execution by returning False
Closes #547.
2018-02-18 22:42:39 -08:00
James Lu
4a01948647 relay: oops, multiple STATUSMSG prefixes should pick the lowest, not highest (#570)
This behaviour really isn't consistent across IRCds though...
- Unreal, Hybrid, and charybdis mangle messages at the server side to use the lowest prefix
- InspIRCd throws a "No such nick/channel" error
- Nefarious silently drops messages with multiple prefixes?
2018-02-18 22:29:16 -08:00
James Lu
37be73d39c clientbot: add STATUSMSG support (#570) 2018-02-18 22:15:19 -08:00
James Lu
81bd1e8474 relay: add basic support for STATUSMSG (#570)
So far, this code only knows about changing prefixes while keeping mode characters as-is.
A complete but longer solution would be to actually go through irc.cmodes, but I don't
think doing so is necessary given how little STATUSMSG is actually used in production.
2018-02-18 22:03:12 -08:00
James Lu
1405b01597 ServiceBot: clean up some function descriptions 2018-02-18 19:40:46 -08:00
James Lu
484822e5d7 docs: various fixes pointed out by @MrBenC
- Clarify the project's goals of being an IRC services *framework*
- Briefly mention in the FAQ that the relay plugin is needed for...well, relay!

[skip ci]
2018-02-17 00:50:12 -08:00
James Lu
7114c6942f README: the shared{} requirement for KLINEs likely applies to chatircd too 2018-02-12 11:18:48 -08:00
James Lu
8321485315 launcher: prevent protocol module init errors from aborting execution
This fixes various issues including:
- Networks going missing (the server list is read in a non-deterministic order)
- world.started never being set, causing relay to never work!
2018-02-10 16:17:18 -08:00
James Lu
3f7e2328fe relay: make endburst delay configurable
Also, raise the default to 10 seconds.
2018-02-10 15:53:49 -08:00
James Lu
ea84497359 protocols: remove the endburst_delay option from spawn_server
Interestingly, this was never documented in the protocol module spec...
2018-02-10 15:44:09 -08:00
James Lu
a425f873b5 relay, inspircd: move endburst delay code to a private API
This is a very specific hack that shouldn't be extended across the protocol module spec. So far, all other protocol modules ignore the endburst_delay option anyways.
2018-02-10 15:34:07 -08:00
James Lu
ccbd79a95c relay: fix KeyError when a local client is kicked from a claimed channel
Fixes #572.
2018-02-10 15:12:40 -08:00
James Lu
18c1a277f5 clientbot: remove extraneous use of to_lower() in handle_part 2018-01-31 19:35:24 -08:00
James Lu
74848853ac clientbot: fix KeyError caused by lower() in spawn_server
This affected connections to afternet for example.
2018-01-31 19:33:05 -08:00
James Lu
9f6e4306cd automode: fix handling of channels with multiple #'s in them
(cherry-picked from commit 09c8b03705)
2018-01-29 08:21:37 -08:00
James Lu
84f6190478 inspircd: only read METADATA modules changes from the uplink
Closes #567.
2018-01-25 09:52:29 -08:00
James Lu
28a62f629a automode: replace assert usage with proper exceptions 2018-01-22 08:17:20 -08:00
James Lu
09c8b03705 automode: fix handling of channels with multiple #'s in them 2018-01-22 08:15:04 -08:00
James Lu
5fd216c720 commands: fix 'showchan' displaying status prefixes in reverse 2018-01-22 08:10:55 -08:00
James Lu
d608661a33 permissions-reference: document perms for 'raw' plugin 2018-01-21 13:52:29 -08:00
James Lu
8000d51453 Split the 'raw' command into a new plugin
Closes #565.
2018-01-21 13:50:37 -08:00
James Lu
e446e0e27b control: continue handling SIGUSR1 as rehash for compat with older 2.0 versions 2018-01-21 13:36:29 -08:00
James Lu
44be5910e0 Revert "control: move rehash signal to SIGUSR1, and shutdown on SIGHUP (terminal close)"
This wasn't an incredibly popular decision because it broke a simple 'pylink &'

This reverts commit 883f9199ec.

Conflicts:
	coremods/control.py
2018-01-21 13:31:15 -08:00
James Lu
6bb2198710 inspircd: move _modsupport.clear() to a _post_disconnect override
Speculative fix for #567.
This may be caused by a race condition between post_connect and handle_capab, since the remote server can send its server data before we start sending ours.
2018-01-21 13:27:59 -08:00
James Lu
67dea6f748 classes: add docstrings to _pre_connect, _pre_disconnect, _post_disconnect 2018-01-21 13:20:42 -08:00
James Lu
58b717a2a0 docs/t: warn in main articles that specifications in master may be outdated
[skip ci]
2018-01-13 18:29:57 -08:00
James Lu
31c96bd1ed hooks-reference: bump to 2.0-alpha2
- Replace `IrcChannel`, `IrcUser`, and `IrcServer` with their new class names (`classes.Channel`, `classes.User`, and `classes.Server`)
- Replace `irc.fullVersion()` with `irc.version()`
- Various minor wording tweaks.
2018-01-13 18:23:12 -08:00