James Lu
13b5377102
relay: Fix check for whether target user is on our target channel
...
Really closes #71 ; can I sleep now...
2015-08-14 19:02:51 -07:00
James Lu
65b8c9db8a
relay: attempt to fix race conditions in getRemoteUser calls ( #92 )
2015-08-14 08:52:09 -07:00
James Lu
13e4baba8b
inspircd: also strip listmodes in joinClient ( #58 )
2015-08-14 08:47:23 -07:00
James Lu
18576ad488
Irc: fix the ping timeout/reconnection logic
...
- reset connection state and last ping time on reconnect
- move Ping timeout logic to somewhere where it'd actually run - the code for breaking out of the run() loop on a ping timeout could previously only run when a ping timeout hadn't occured yet
- consistently use log.warning() instead of log.warn()
This hopefully fixes PyLink going into a disconnect/reconnect loop sometimes instead of reconnecting properly.
2015-08-12 21:31:46 -07:00
James Lu
d3e335edee
Merge branch 'devel'
...
SSL support - Closes #80 .
2015-08-12 07:20:56 -07:00
James Lu
88c156b8fc
README: formatting
2015-08-12 22:17:44 +08:00
James Lu
7d912bbb28
pr/insp: Strip out listmodes in FJOIN
...
They should always be sent separately according to the protocol documentation: https://wiki.inspircd.org/InspIRCd_Spanning_Tree_1.2/FJOIN
Closes #58 .
2015-08-12 07:05:05 -07:00
James Lu
27edc81894
relay: fix error message when DELINK is called on a relay's origin network without arguments
...
tl;dr I'm a terrible writer
2015-08-12 07:03:49 -07:00
James Lu
3ee10a5d1e
relay: also propagate AWAY status when spawning users
2015-08-12 04:40:49 -07:00
James Lu
486b56e255
relay: relay AWAY statuses
2015-08-12 04:18:20 -07:00
James Lu
1a57dfcdc3
prs+IrcUser: add incoming (handle_away) and outgoing (awayClient) AWAY handling
2015-08-12 04:17:01 -07:00
James Lu
7bccb37ddf
Irc: catch OSError when reading SSL cert/key files
...
(ref: #80 )
2015-08-12 02:01:33 -07:00
James Lu
d9f5cdfeaf
Irc: optionally validate SSL cert fingerprints ( #80 )
2015-08-12 02:00:43 -07:00
James Lu
fe7adb716b
start-cpulimit: throttle at 35% instead of killing at 20% usage
2015-08-12 01:20:44 -07:00
James Lu
b3c8929d17
relay: make logging less spammy
2015-08-12 01:20:32 -07:00
James Lu
14435f8f55
relay: run getLocalUser BEFORE quitting the user (in removeChannel)
...
This prevents KeyErrors from showing up on DELINK.
2015-08-12 01:19:30 -07:00
James Lu
684eac9583
Irc: fix the logic checking for data in run()
2015-08-10 20:26:19 -07:00
James Lu
e756af42ee
.gitignore: ignore .pem files
2015-08-10 20:26:10 -07:00
James Lu
18cd3bdd88
Add SSL linking support ( #80 )
...
TODO: implement fingerprint checking (optional) and a genssl script to ease SSL certificate generation.
2015-08-10 20:24:55 -07:00
James Lu
b6f5b08af0
README: add elemental-ircd to supported IRCds
2015-08-09 14:45:15 +08:00
James Lu
cdb0bb6707
relay: fix some dumb typos
2015-08-07 17:57:37 -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
bf3116d704
First attempt at handling channel TS @ burst ( #93 )
...
Doesn't quite work yet, more testing needed.
2015-08-05 06:14:34 -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