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

347 Commits

Author SHA1 Message Date
James Lu
005789e85a plugin_example: document the arguments each hook / command function takes 2015-08-09 01:06:00 -07:00
James Lu
7b69ff4733 Replace plugins/hooks.py with an example plugin in docs/ 2015-08-09 00:26:40 -07:00
James Lu
67d8bc8e1f docs/: fill in Contents, where future docs will go 2015-08-09 14:36:46 +08:00
James Lu
4fef587014 docs/: smaller image 2015-08-06 03:10:21 -07:00
James Lu
2611c76829 Update core-structure graph
I had a lot of fun drawing this

too much
2015-08-06 03:05:07 -07:00
James Lu
e91efa5a6c Initial documentation stub (docs/technical/) 2015-08-05 23:31:53 -07:00
James Lu
d23d1c3987 relay: don't wait for irc.connected anymoree
Not needed, as nick length is a config value now.
2015-08-05 21:56:52 -07:00
James Lu
411b6c4702 relay: allow opers to run SAVE too 2015-08-05 06:10:55 -07:00
James Lu
4d55c8ce73 relay: announce KILL blocks once, and only once 2015-08-05 05:43:31 -07:00
James Lu
f61ecf6d68 relay: only call initializeAll on ENDBURST for the uplink
This prevents unnecessary bursts being sent every time a server is introduced on any network.
2015-08-04 05:13:44 -07:00
James Lu
3f98af6f96 relay: a few bugfixes
- Only send messages for blocked kicks if the sender is a user
- getRemoteUser: only set the .remote attribute when spawning a new user (prevents KeyErrors)
- Kick handling: Check for +y too when checking whether the kicker has ops
2015-08-03 23:22:13 -07:00
James Lu
4d76593901 TS6: Initial support for elemental-ircd
The TS6 protocol gets some new options here: use_halfop, use_admin, use_owner, and use_elemental_modes, to deal with features
supported in Elemental but not charybdis. A second server block is added in the example config to document this.
2015-08-03 23:20:19 -07:00
James Lu
d533ce3d28 example conf: remove unused sidrange option 2015-08-03 21:48:16 -07:00
James Lu
8a134aadc5 Remove duplicate assignment of irc.uidgen 2015-08-03 19:44:11 -07:00
James Lu
042edb3e1c Make default max nick length a config option 2015-08-03 19:42:26 -07:00
James Lu
fdcb58ba2c Irc: reconnect instead of killing when an error is received 2015-08-03 19:29:30 -07:00
James Lu
f786242730 Support loading different config files from the command line
Closes #84. Logs, PID files, and relay DBs will name themselves differently for every instance, to prevent conflicts. The default is always config.yml.
2015-08-03 19:27:19 -07:00
James Lu
e5eb58ee73 inspircd: use parse_as instead of forcibly mapping ENCAP to KNOCK 2015-08-03 05:00:32 -07:00
James Lu
55a4fcd8be Merge branch 'devel' of github.com:GLolol/PyLink into devel 2015-08-03 04:42:09 -07:00
James Lu
120f6fb7f0 main: raise connect timeout, run initVars on connect and not disconnect 2015-08-03 04:41:00 -07:00
James Lu
58e84a654c relay: prevent RuntimeError on handle_quit 2015-08-02 19:46:19 -07:00
James Lu
880b59c2c1 utils.isOper: check for both umode +o and login status
Also, make commands.status show this isOper result.
2015-08-02 19:41:40 -07:00
James Lu
3646930d34 relay: disable "you must in a share channel" messages; they're buggy 2015-07-29 04:02:45 -07:00
James Lu
ce822061d2 Irc: catch UnicodeDecodeError when parsing lines
TODO: respect other encodings too?
2015-07-29 04:02:03 -07:00
James Lu
7db1648438 relay: (possibly) block relaying events to disconnected networks 2015-07-25 22:56:34 -07:00
James Lu
4d7d7ce428 relay: Only block once per IRC object, ever.
Closes #59?
2015-07-25 22:54:02 -07:00
James Lu
5eee8000dd Irc: catch OSError (bad file descriptor) errors; they usually mean we're disconnected 2015-07-25 22:51:00 -07:00
James Lu
a38fe1ab90 Fix #74 for real? 2015-07-25 22:11:41 -07:00
James Lu
ddefd38591 ts6: fix the broken mess of a JOIN handler, and 'parse_as' handling in irc.callHooks... 2015-07-25 20:43:26 -07:00
James Lu
1ab8db8069 start-cpulimit: default limit to 20% 2015-07-25 18:27:30 -07:00
James Lu
69e16e536b ts6: add QS as a required capability 2015-07-25 18:27:30 -07:00
James Lu
e354ada838 relay: fix nick collision loop on SAVE + when both tagged UID and untagged UID exist on one net
This fixes a clash when for example: both 42XAAAAAA and _42XAAAAAA exist on a network, and PyLink tries to relay both nicks as _42XAAAAAA/network.

Also, this adds an oldnick argument to the SAVE protocol handler, which is then used by relay.normalizeNick to check whether the original pre-SAVE nick is also in use, in the event of nick collisions.
2015-07-25 18:27:30 -07:00
James Lu
5ab7b507be Add wrapper scripts (start-cpulimit.sh, kill.sh) to assist running PyLink under cpulimit
Again, we're trying to prevent the software from frying people's CPUs...
2015-07-25 16:58:11 -07:00
James Lu
f85fbd934b main: write a PID file to pylink.pid 2015-07-25 16:57:21 -07:00
James Lu
c07cfb13df relay: fix checks of DELINK must having a network parameter on a relay's home network 2015-07-25 16:56:48 -07:00
James Lu
3804e5e4f8 main: shut down immediately when handle_events errors
This is to prevent accidents from frying a server's CPU. For example, a nick collision loop due to a desync!
2015-07-25 16:11:41 -07:00
James Lu
6de30722b9 Revert "README: mark TS6 support as experimental"
This reverts commit a5d71ffb56.

Then again, most of PyLink is experimental at this stage... :)
2015-07-25 11:08:04 -07:00
James Lu
b681a675eb relay: only join users once, returning if there are no queued users at all
Closes #71, prevents op floods on multiple SJOIN being sent. Also, this squashes AssertionErrors raised by protocol modules in sjoinServer, when we try to join zero users to a channel!
2015-07-25 11:03:27 -07:00
James Lu
7daa595a7b relay: fix opmodes not actually being coersed properly
Modepair is set before the coersing phase and never updates; whoops!
2015-07-25 10:43:47 -07:00
James Lu
25da086a6b Merge branch 'master' into wip/relay-no-duplicate-modes 2015-07-25 10:18:08 -07:00
James Lu
ee1267f06e relay: fix use of incorrect variable in logging 2015-07-24 21:12:33 -07:00
James Lu
146ab5e444 ts6: support +AOS charybdis extension modes, warning if the IRCd doesn't support them
Also, add 'adminonly' (+A) to relay's whitelist.
2015-07-24 20:55:48 -07:00
James Lu
e4da670ae0 relay: propagate SAVE as NICK changes for non-relay users! 2015-07-24 18:29:59 -07:00
James Lu
a4da9b5324 protocol/relay: fix handling of KILLs sent to non-relay users 2015-07-24 18:26:31 -07:00
James Lu
3b67ddfee6 coreplugin: use a more standard "End of WHOIS" message
"End of /WHOIS list" seems relatively standard: it's used by InspIRCd, charybdis, and UnrealIRCd.
2015-07-24 11:13:53 -07:00
James Lu
007a1d9389 Merge branch 'master' into devel 2015-07-24 11:09:53 -07:00
James Lu
01220b3024 correction: InspIRCd uses RFC1459 case mapping by default 2015-07-24 10:59:04 -07:00
James Lu
a5d71ffb56 README: mark TS6 support as experimental
Currently, #71 makes this near unusable because of mode flooding whenever anything happens on a slightly large network.
2015-07-24 10:56:23 -07:00
James Lu
71a3464e8a relay: also quit users who aren't on any shared channels after KICK 2015-07-24 10:51:16 -07:00
James Lu
5c3466bf82 relay: briefly workaround #74 by reordering our user checks 2015-07-24 10:50:39 -07:00