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
James Lu
868b4503e6
protocols: Fix #81 - that was easy!
...
Split data by only one space at a time, not as many spaces as possible. Thanks to @nathan0.
2015-07-23 19:09:19 -07:00
James Lu
254797dcfd
relay: remove servprotect from umode whitelist for now..
2015-07-23 18:05:13 -07:00
James Lu
57c3a04cda
ts6: call SQUIT hooks upon receving it...
2015-07-23 15:05:10 -07:00
James Lu
0977268070
utils.parseModes: don't error if prefix isn't given, assume +
2015-07-23 15:04:57 -07:00