3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-26 04:32:51 +01:00
Commit Graph

124 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
55a4fcd8be Merge branch 'devel' of github.com:GLolol/PyLink into devel 2015-08-03 04:42:09 -07:00
James Lu
58e84a654c relay: prevent RuntimeError on handle_quit 2015-08-02 19:46:19 -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
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
a38fe1ab90 Fix #74 for real? 2015-07-25 22:11:41 -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
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
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
007a1d9389 Merge branch 'master' into devel 2015-07-24 11:09:53 -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
254797dcfd relay: remove servprotect from umode whitelist for now.. 2015-07-23 18:05:13 -07:00
James Lu
dc7edf542a relay: fix error on handle_part if remote network has no link 2015-07-23 14:34:56 -07:00
James Lu
d213429559 Revert "relay: when filtering modes, ignore internal mode-type lists (modenames starting with *)"
This reverts commit 4ce377944c.
2015-07-23 14:30:48 -07:00
James Lu
0575de1fac Support noctcp (+C) on charybdis, and wallops (+w) in relay 2015-07-23 13:45:38 -07:00
James Lu
4ce377944c relay: when filtering modes, ignore internal mode-type lists (modenames starting with *) 2015-07-23 13:36:40 -07:00
James Lu
254ccea0a3 remove some debugging cruft and unused imports 2015-07-23 11:46:45 -07:00
James Lu
83494482a2 relay: don't ever quit the main client or part it from autojoin channels 2015-07-23 11:44:38 -07:00
James Lu
cbe7fa539f relay: remove more spurious "you must be in channel" messages 2015-07-23 11:41:33 -07:00
James Lu
58a8d7134c Fix handling of inbound CHG* 2015-07-23 11:02:32 -07:00
James Lu
8799e1ccc8 spawnClient: add ts as opt. argument; relay: spawn pseudoclients w/ TS of original user 2015-07-23 00:11:24 -07:00
James Lu
44e07b0c2f relay: don't error if the WHOIS target isn't a relay user... oops 2015-07-23 00:10:54 -07:00
James Lu
a7f977aa3b Add whois handlers for channel lists, user modes, and signon time, and relay user information
New API: utils.whois_handlers allows one to add functions taking (irc, target) and returning (irc numeric, reply text)

Closes #72.
2015-07-23 00:01:51 -07:00
James Lu
8c1e1c18f1 relay: Factorize relayJoins usage in initializeChannel and truly fix #74.
Squashed commit of the following:

commit 4e481f15db372d5c07f30e92f6581ea93692695b
Author: James Lu <GLolol1@hotmail.com>
Date:   Wed Jul 22 19:28:34 2015 -0700

    relay: Factorize relayJoins usage in initializeChannel and truly fix #74.

    The real error was that queued_users was being defined in the wrong spot (outside of the for loop),
    so the user list would grow larger and larger with every network initialized.

    This reverts parts of the previous commit which weren't actually necessary.

commit 76cc6bfbc71439880f01891f944600a26ff81130
Author: James Lu <GLolol1@hotmail.com>
Date:   Wed Jul 22 13:34:47 2015 -0700

    Mark users as internal at the IrcUser level (attempt to fix #74)
2015-07-22 19:29:58 -07:00
James Lu
c889cf6513 relay: only check for duplicate modes if prefix is '+' 2015-07-21 23:58:28 -07:00