3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-24 19:49:24 +01:00
Commit Graph

956 Commits

Author SHA1 Message Date
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
3b67ddfee6 coreplugin: use a more standard "End of WHOIS" message
"End of /WHOIS list" seems relatively standard: it's used by InspIRCd, charybdis, and UnrealIRCd.
2015-07-24 11:13:53 -07:00
James Lu
007a1d9389 Merge branch 'master' into devel 2015-07-24 11:09:53 -07:00
James Lu
01220b3024 correction: InspIRCd uses RFC1459 case mapping by default 2015-07-24 10:59:04 -07:00
James Lu
a5d71ffb56 README: mark TS6 support as experimental
Currently, #71 makes this near unusable because of mode flooding whenever anything happens on a slightly large network.
2015-07-24 10:56:23 -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
868b4503e6 protocols: Fix #81 - that was easy!
Split data by only one space at a time, not as many spaces as possible. Thanks to @nathan0.
2015-07-23 19:09:19 -07:00
James Lu
254797dcfd relay: remove servprotect from umode whitelist for now.. 2015-07-23 18:05:13 -07:00
James Lu
57c3a04cda ts6: call SQUIT hooks upon receving it... 2015-07-23 15:05:10 -07:00
James Lu
0977268070 utils.parseModes: don't error if prefix isn't given, assume + 2015-07-23 15:04:57 -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
024cf9d878 main: better INFO logging... 2015-07-23 14:19:12 -07:00
James Lu
a77427ded9 ts6: fix SQUIT handling
These come in a different syntax? Strange.
2015-07-23 13:45:55 -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
a8b16d9724 utils.parseModes: fix handling of mode "-k *" on TS6
Charybdis allows unsetting +k without actually knowing the key by faking the argument when unsetting as a single "*". We'd need to know the real argument of the +k being removed, in order to remove the mode pair from the mode list.
2015-07-23 13:24:18 -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
42593ae431 ts6: add missing handler for SID 2015-07-23 11:17:57 -07:00
James Lu
58a8d7134c Fix handling of inbound CHG* 2015-07-23 11:02:32 -07:00
James Lu
1efc9018f3 main: raise fallback ping frequency to 30 2015-07-23 10:28:28 -07:00
James Lu
2e34d9e85d ts6: Use EUID in spawnClient, and error on attempts to use plain UID
The latter isn't handled and thus would lead to pretty bad desyncs. Closes #79.
2015-07-23 10:22:55 -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
88c85c8475 coreplugin/whois: only show user modes to opers 2015-07-23 00:05:05 -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
d52fba37b8 add numericServer for sending raw numerics from servers, and WHOIS handling in coreplugin
Basic WHOIS handling (user information, server information, IRCop access) are sent. #72

TODO: send channel lists, an extra note for relay clients, user modes, and idle time
2015-07-22 21:15:34 -07:00
James Lu
8a1f965303 Consistently use applyModes in spawnClient, so user modes are stored like ('o', None) instead of ('+o', None)
Drop the 'modes' argument in IrcUser, for this is incorrect.
2015-07-22 21:14:22 -07:00
James Lu
686467ffa6 Remove endburst toggling in spawnServer, has_bursted IrcServer flag
Neither are being used at all; they're essentially dead code.
2015-07-22 20:39:38 -07:00
James Lu
35cdfbf7e6 Declare IRCd casemapping in protocol modules, and respect these in utils.nickToUid
This adds a new utils.toLower(irc, text) function which returns the lowercased version of <text> based on <irc>'s declared case mapping.

Closes #75.
2015-07-22 20:31:45 -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
3eb54c479a admin: clearer command help? 2015-07-22 13:18:11 -07:00
James Lu
f5f031e41b config.yml.example: add header and note about comments
Apparently this isn't obvious enough for some. Figures. :|
2015-07-22 11:46:38 -07:00
James Lu
c889cf6513 relay: only check for duplicate modes if prefix is '+' 2015-07-21 23:58:28 -07:00
James Lu
48aa0c3160 relay: rebase "no duplicate modes" branch over devel
Conflicts:
	plugins/relay.py
2015-07-21 23:55:28 -07:00
James Lu
7b84bda11b relay: refactor getLocalUser to accept a targetirc argument; fix MODE and KICK relaying
Closes #76.
2015-07-21 23:53:59 -07:00
James Lu
a1fc6d6734 relay: attempt to fix kick relaying (#76) 2015-07-21 22:14:53 -07:00
James Lu
6abb56921e relay: fix DELINK delinking more networks than the current one 2015-07-21 20:18:35 -07:00
James Lu
a04bce99c1 fix 8f13ae77, again... 2015-07-21 20:13:43 -07:00
James Lu
e2738e3909 utils.applyModes: fix prefixmodes lists not being updated... 2015-07-21 19:57:22 -07:00
James Lu
bad1132789 ts6: fix users not joining channels properly due to command cutoff
https://github.com/grawity/irc-docs/blob/master/server/ts6.txt#L5-L6 states that there can only be 15 parameters max per command, GLOBALLY. Ugh.

No warnings? No clue whatsoever that the SJOIN is dropped? This wasted a lot of time.

COME ON.
2015-07-21 19:29:15 -07:00
James Lu
3b79adf4e5 relay: Fix remoteuser being None for spawned pseudoclients
We're supposed to ignore these anyways... Closes #74.
2015-07-21 19:29:09 -07:00
James Lu
8f13ae778a Fix regression in 024ac165 that caused channel messages to only be sent to one other net, instead of all relay links 2015-07-21 19:27:41 -07:00
James Lu
ea7681502f fix some bugs, introduce others 2015-07-21 17:33:36 -07:00
James Lu
c0f82597a5 relay: don't spawn new pseudoclients for mode changes 2015-07-21 16:07:09 -07:00