3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-30 14:42:50 +01:00
Commit Graph

415 Commits

Author SHA1 Message Date
James Lu
4382b22138 relay: warn users when messaging channels they aren't in / remote users w/o sharing a channel
Some refactoring of relay's PRIVMSG handling is done here:
- Messages to channels the sender isn't in are dropped, with a notice warning sent.
- Messaging a remote user without sharing a channel with them raises an error, and is dropped.

Closes #91.
2015-08-15 00:02:46 -07:00
James Lu
e5c7d438b1 relay: in handle_kick, only remove the target from the user cache after the kick has been relayed to all networks 2015-08-14 19:05:07 -07:00
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