James Lu
d01b9aaa23
relay: improve fallback KNOCK notices
...
- Show the network that the /knock originated from (it is *not* obvious when we have a user with no relay client)
- Specifically hint that users with no relay client cannot be invited directly because there is no client to actually /invite!
- Prefer sending the notice to %#channel when halfops are available, as they usually have the power to /invite
2017-12-21 01:57:43 -08:00
James Lu
f64976b1ed
p10: implement outgoing knock() as a wrapper over NOTICE
2017-12-21 01:53:41 -08:00
James Lu
2df608307d
relay: block sending STATUSMSG messages to IRCds not supporting them
2017-12-21 01:41:01 -08:00
James Lu
16b491fdab
ts6_common, p10: declare protocol cap has-statusmsg
2017-12-21 01:34:41 -08:00
James Lu
d81a9cd5c3
relay: differentiate between PRIVMSG vs. NOTICE via a blacklist
...
This is so that P10 WALL* commands are forwarded correctly as notices instead of privmsgs.
2017-12-21 01:27:34 -08:00
James Lu
20e730ba2b
p10: add inbound handlers for WALLCHOPS/WALLHOPS/WALLVOICES
...
This essentially finishes off STATUSMSG support on P10.
2017-12-21 01:27:19 -08:00
James Lu
2cc1195ff9
p10: refactor message() to send @%+#channel messages correctly
2017-12-21 01:20:08 -08:00
James Lu
63f3cdaea8
relay: add knock forwarding support
2017-12-21 00:19:09 -08:00
James Lu
454539185e
Move knock handling to ts6_common
...
This adds support for (reasonless) KNOCK on TS6.
2017-12-21 00:04:55 -08:00
James Lu
2245af1dba
Revert "ts6: handle ChatIRCd ENCAP USERMODE"
...
This reverts commit 785fc8d2d2
.
This feature isn't actually used yet and is relatively non-standard. Aside from that, the biggest issue so far is that ENCAP USERMODE doesn't give servers a way to explicitly acknowledge or reject(ignore) the mode change, which can lead to desyncs.
2017-12-18 17:20:37 -08:00
James Lu
ab91acb2f7
relay_clientbot: rename isRelayClient => is_relay_client()
2017-12-18 13:23:53 -08:00
James Lu
954f4f9886
relay: capitalize constants related to modes
2017-12-18 13:23:16 -08:00
James Lu
0104462782
relay: whitelist cmodes kicknorejoin, kicknorejoin_insp, repeat, repeat_insp
...
Closes #559 .
2017-12-18 13:17:05 -08:00
James Lu
ec3b230eab
inspircd: move definitions for cmodes +J and +E to kicknorejoin_insp and repeat_insp
...
These use InspIRCd specific arguments which don't map cleanly to other IRCds. #559
2017-12-18 13:10:48 -08:00
James Lu
6c65d5523e
IRCNetwork: potentially fix queue thread shutdowns ( #558 )
...
Replace unreliable appendleft() usage with replacing the first element (or adding None if the queue is empty).
2017-12-17 01:01:21 -08:00
James Lu
9a5072824d
relay: stop lowercasing modedelta args, as that can break things like unreal +f
2017-12-14 13:40:47 -08:00
James Lu
f908e407d4
relay: also ignore clientbot networks in modedelta
...
TODO: abstract all these checks out!
2017-12-14 13:26:43 -08:00
James Lu
923795719f
relay: drop all list and prefix modes in modedelta
2017-12-14 13:07:00 -08:00
James Lu
57a2132d5d
relay: always enforce modedelta modes, and prevent them from being unset
2017-12-14 12:46:25 -08:00
James Lu
b2270ca3eb
relay: move claim enforcement routines outside the mode/kick loops
...
This prevents claim responses from being sent multiple times.
2017-12-14 12:15:19 -08:00
James Lu
59c12ff354
relay: merge in modedelta branch, port to latest 2.x relay
...
Merge remote-tracking branch 'origin/wip/relay-modedelta' into devel
Conflicts:
plugins/relay.py
2017-12-14 11:56:41 -08:00
James Lu
8490bee634
handlers: pick the highest prefix when displaying status in WHOIS
...
This fixes a regression from aa44bc15a3
2017-12-12 12:46:43 -08:00
James Lu
9dfa0a478e
classes: fix inverted order in get_prefix_modes() description
...
No, no, no. Nobody sorts modes that way!
2017-12-07 12:07:08 -08:00
James Lu
d54bf0d06c
relay: also log the extban prefix strings being readded
2017-12-07 11:38:27 -08:00
James Lu
a2cb4daa46
relay: mangle the mode name when forwarding extban->cmode so that +b syntax filters don't trigger
...
This should allow bidirectional forwarding between UnrealIRCd +b ~T:block:<glob> and InspIRCd +g <glob> to work.
(#557 )
2017-12-07 11:26:16 -08:00
James Lu
8fcb5f9df0
relay: ignore static extbans when looking up dynamic extban prefixes
...
This fixes #560 , which was caused by relay confusing ban_all_registered ($a) with ban_account ($a:), since $a:account also starts with $a.
2017-12-07 11:05:39 -08:00
James Lu
6adeada598
relay: add more complete debug logging in extban handlers
2017-12-07 11:04:26 -08:00
James Lu
a0c57d0a5a
unreal: register ~T extbans as filter and filter_censor ( #557 )
...
This doesn't work in relay yet because of #560 (as well as a restriction where acting extbans must match n!u@h...)
2017-12-07 00:36:38 -08:00
James Lu
bd2cd90957
modelists/channel-modes: add inspircd +D definition
...
[skip ci]
2017-12-05 12:04:35 -08:00
James Lu
d30eca77e9
relay: add more channel modes to the whitelist
...
* blockcaps: inspircd +B, elemental-ircd +G
* exemptchanops: inspircd +X
* filter: inspircd +g
* hidequits: nefarious +Q, snircd +u
* history: inspircd +H
* largebanlist: ts6 +L
* noamsg: snircd/nefarious +T
2017-12-05 12:01:57 -08:00
James Lu
80ef2ca788
hybrid: remove slash-in-hosts as it is not supported
2017-12-03 18:56:43 -08:00
James Lu
2fc5d32e3f
NetworkCore: don't clear state on disconnect
...
This is already reset on connect, so doing it here too is a bit pointless.
2017-12-03 18:56:39 -08:00
James Lu
bebdf2e4ff
IRCNetwork: avoid sending multiple disconnect hooks for one disconnection
2017-12-03 17:46:45 -08:00
James Lu
8b62d6d458
modelists: resort data by ircd names defined in protocol modules
2017-11-21 07:39:45 -08:00
James Lu
52f40ad7a2
networks.remote: don't clobber command switches for other commands
...
This also moves the --service argument to before the network name to prevent ambiguity with argparse.REMAINDER.
Closes #538 .
2017-11-14 18:14:23 -08:00
James Lu
f969197436
Convert protocol-modules graphic to a .svg
2017-11-12 12:07:08 -08:00
James Lu
bff53c6e69
Remove .codeclimate.yml, practically unused
...
This reverts commit 3869c06991
.
2017-11-12 12:03:25 -08:00
James Lu
03e02dda51
relay: replace garbage locking code with proper filtering in relay_joins
...
I'm not even going to start on how much time I spent working on this...
Closes #548 , #529
2017-11-12 11:58:36 -08:00
James Lu
d4cbf1d2af
services_support: fix rejoin-on-kill to the main service bot
...
Clear the irc.pseudoclient state on kill as the respawning code will check for it first and reuse UIDs even if they don't exist.
2017-11-12 10:54:30 -08:00
James Lu
847854aac3
Merge branch 'master' into devel
...
Conflicts:
README.md
2017-11-07 19:19:52 -08:00
James Lu
48ea58c1fb
bots: remove use of deprecated utils.isNick()
2017-11-07 19:19:11 -08:00
James Lu
c35c8cd4aa
FAQ updates [skip ci]
...
- add answers for "services bots not spawning" and "inconsistent config spacing causing errors"
- reword the connection troubleshooting section slightly
- mention using 'showchan' to help determine the cause of missing user issues
2017-11-07 09:59:37 -08:00
James Lu
15a231a371
global: ignore empty "global:" configuration blocks
2017-11-06 12:07:33 -08:00
James Lu
b6af6dddc5
relay: fix RuntimeError on handle_part for clientbot networks
2017-11-05 01:18:42 -08:00
James Lu
509c2e52c4
clientbot: fix KeyError when there are still queued outgoing messages to a channel we just left
2017-11-05 01:17:59 -08:00
James Lu
62cef5c3f5
classes: clarify comments on mode-related functions
2017-11-03 23:40:11 -07:00
James Lu
b366aa8d61
Merge branch 'wip/ts6-updates' into devel
2017-10-27 06:50:37 -07:00
James Lu
544e078512
clientbot: treat 0 as an empty account name (for WHOX)
...
This fixes incorrect "X is logged in (on somenet) as 0" messages in WHOIS.
2017-10-25 16:01:10 -07:00
James Lu
c974ee9b44
hybrid: various cleanup
2017-10-22 01:19:38 -07:00
James Lu
c636e064e7
ts6: remove SAVE from required capabs
...
We don't actually send SAVE out to any IRCd, so we don't need to demand that it's supported.
Closes #545 .
2017-10-22 01:08:30 -07:00