James Lu
821f546f12
Make sure the PyLink client rejoins all relay channels on KILL
...
This adds a new internal hook, 'PYLINK_SPAWNMAIN', which is triggered whenever Irc().spawnMain() is called.
2015-08-18 05:44:36 -07:00
James Lu
f93349ae1f
relay: when restoring a user after KICK, join them to the *right* channel
2015-08-18 02:59:56 -07:00
James Lu
5704fddfb4
relay: ignore internal clients for CLAIM checks
2015-08-18 02:57:40 -07:00
James Lu
0d2fbc330d
relay: fix "Left all shared channels" quits for KICK handling
2015-08-18 02:44:27 -07:00
James Lu
d6e6e56e03
relay: hotfix to fix KILL handling of relay clients
2015-08-17 21:15:44 -07:00
James Lu
de36c7a62a
Merge branch 'wip/admin-commands-loopback' into devel
...
Conflicts:
plugins/relay.py
2015-08-17 07:52:45 -07:00
James Lu
8b77956ab9
Merge branch 'devel'
...
Closes #71 .
Closes #91 .
Closes #92 .
Closes #93 .
2015-08-17 03:48:35 -07:00
James Lu
e7f187c672
relay: send modes once at init, not on every JOIN
2015-08-15 23:31:54 -07:00
James Lu
61d95c19cc
protocols: delete empty non-permanent channels
2015-08-15 23:29:40 -07:00
James Lu
3b83c3d567
relay: fix TOPIC relaying when the source and target channels have different names
2015-08-15 23:05:09 -07:00
James Lu
c99a6a7b9d
protocols: update topic in channel state when sending outbound TOPIC
2015-08-15 22:34:40 -07:00
James Lu
06c466896e
ts6: fix prefixmodes not being updated in sjoin
2015-08-15 20:14:36 -07:00
James Lu
487f730783
Merge branch 'devel' into wip/handle-ts-bursts
2015-08-15 20:02:24 -07:00
James Lu
579838e1ba
utils.applyModes: be more error tolerant?
2015-08-15 20:02:07 -07:00
James Lu
4352a68357
Check for TS changes on SJOIN (both incoming and outgoing)
...
Restore relay to the devel branch; TS bursts shouldn't be handled there, but in the protocol modules.
TODO: fix prefixmodes being cleared after BURST, and never being reset?
2015-08-15 19:53:09 -07:00
James Lu
0d41e35d9c
Merge branch 'devel' into wip/handle-ts-bursts
...
Conflicts:
plugins/relay.py
2015-08-15 19:28:49 -07:00
James Lu
aec29d2aae
relay: continue, not return
...
(fix SQUIT not rejoining relay users properly)
2015-08-15 19:23:41 -07:00
James Lu
043a4bc27a
Merge branch 'devel' into wip/admin-commands-loopback
...
Conflicts:
plugins/relay.py
2015-08-15 19:21:38 -07:00
James Lu
dd91b7e5a0
relay: more efficient getLocalUser
...
Set the .remote attribute of each relay client to the original netname, user pair.
2015-08-15 19:18:04 -07:00
James Lu
a1db4932e1
relay: Don't allow kicks/parts to the PyLink client to be relayed.
2015-08-15 06:05:12 -07:00
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