James Lu
6ebe6e7867
relay: check for whether clients are relay clients, instead of just internal clients
...
This prevents things like non-relay PyLink clients being quit for "Left all shared channels", and allows kicks between internal clients to relay properly.
2015-08-15 05:54:18 -07:00
James Lu
f63d17f945
relay: don't relay kicks if the target has no client on the remote network?
2015-08-15 05:54:05 -07:00
James Lu
cc7e52a190
relayJoins: remove check for whether the sender internal client
...
This is already done by the .remote attribute check.
2015-08-15 05:20:17 -07:00
James Lu
b2e1f9678f
plugins/admin: make command sending loop via hooks
...
This should allow plugins like relay to relay messages, kicks, etc. sent from these admin commands to actually work, preventing desyncs.
2015-08-15 05:12:49 -07:00
James Lu
d3ee7ed918
plugins/admin: fix command help for 'mode'
2015-08-15 05:12:20 -07:00
James Lu
f53e818438
plugins/admin: add 'msg' command ( #90 )
2015-08-15 04:51:32 -07:00
James Lu
5daf38d880
relay: restore ability to message @#channels across the relay ( #91 )
2015-08-15 00:12:30 -07:00
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