James Lu
c3bb0f7aca
relay: rework kill->kick forwarding to send from the sender network's subservers
...
This makes the kick message a lot neater.
Before:
* net1.relay has kicked GL/net1 from #test ((net2.relay) KILL FWD from GL/net2: test)
After:
* net2.relay has kicked GL/net1 from #test (KILL FWD from GL/net2: test)
2018-06-14 14:48:54 -07:00
James Lu
76b58c4432
relay: log chandesc changes to INFO
2018-06-12 02:36:37 -07:00
James Lu
77fd9475b6
relay: show channel descriptions before "created by" info
2018-06-12 02:33:29 -07:00
James Lu
8c42825612
relay: allow disabling free link access for all opers
2018-06-12 00:26:24 -07:00
James Lu
1b68bfadc6
coremods, plugins, protocols: drop now redundant allowAuthed=False in is_oper() calls
2018-06-11 23:56:44 -07:00
James Lu
2e3317ce07
relay: explicitly mention forwarding in relayed kill messages ( #520 )
2018-06-11 19:26:52 -07:00
James Lu
93fef9b923
relay: use match_text() to check forcetag_nicks globs
2018-06-11 18:51:30 -07:00
James Lu
73d0e153cf
relay: support relaying kills ( #520 )
...
Instead of always bouncing, kills to a relay client are now handled as follows:
1) If the target and source networks are both in any killshare pool, relay the kill entirely
2) Otherwise, iterate over all channels the kill target is in:
3) If the killer has claim access in a channel, forward the KILL as a kick
4) Otherwise, bounce the kill (so far, silently)
TODO: kill messages are currently very cluttered, we should make our parser deliver more concise strings...
* GL|unreal has quit (Killed (chary.relay (KILL from GL/chary: Killed (GL (test)))))
2018-06-11 18:34:52 -07:00
James Lu
9466813ba1
relay: switch to a flexible, pool-based configuration scheme for IP sharing
...
This deprecates the "relay::show_ips" and network-specific "relay_no_ips" options, replacing it with the "relay::ip_share_pools" list.
2018-06-11 17:29:29 -07:00
James Lu
b1248524a9
relay: raise an error when trying to delink a leaf channel from another leaf network
...
Previously this would (confusingly) delink the channel from the network the command was called on instead of the intended target.
2018-06-08 18:45:45 -07:00
James Lu
8cc838e5ca
relay: allow "relay.link.force_ts" as an alternate permission to 'link --force'
2018-06-08 15:56:42 -07:00
James Lu
06d57a5b28
relay: rename 'link --force' to 'link --force-ts' to better reflect its purpose
...
Also mention explicitly that this option does not bypass LINKACL and other channel restrictions (e.g. the Clientbot one)
2018-06-07 13:48:38 -07:00
James Lu
d4bf407c5d
relay: oops, the op check in 'link' should be specific to clientbot
2018-06-07 13:44:37 -07:00
James Lu
b202954be4
relay: check permissions before clientbot op status to prevent arbitrary join triggering
...
This mirrors the fix in 1.x: commit 141e941fcd
2018-06-07 13:39:16 -07:00
James Lu
fee64ece04
relay: fix clientbot op requirement not being checked if the sender is in the target channel
...
Also, show a slightly different error when using the command with 'remote', since the clientbot client gets overridden to be the message sender.
This mirrors the fix in 1.x: commit 9578fd5ac3
2018-06-07 13:38:52 -07:00
James Lu
62fcdf880c
relay: support setting freeform channel descriptions for LINKED
...
Closes #576 .
2018-06-01 23:03:31 -07:00
James Lu
32acc27967
relay: tweak the "wrong network" error message for claim, modedelta
2018-06-01 22:48:13 -07:00
James Lu
c8b2a676fd
relay: rename CHANNEL_DELINKED_PARTMSG -> CHANNEL_DELINKED_MSG
2018-05-30 12:45:20 -07:00
James Lu
08a7b5c837
relay: remove our persistent channels on unload
2018-05-30 12:43:59 -07:00
James Lu
ec3a94c4ca
Move U:line checking into core as PyLinkNCWUtils.is_privileged_server()
...
Closes #604 .
2018-05-26 00:14:04 -07:00
James Lu
c9c937e7a7
relay: block networks not on the claim list from merging in modes when relinking
...
This can cause channels to be inadvertently set modes that it shouldn't be on a relink (e.g. modes set by services DEFCON), since relay ignores modes from defined u-lines instead of bouncing them.
2018-05-21 00:09:57 -07:00
James Lu
1fb2a90580
relay: log rejected links due to LINKACL to WARNING
...
Closes #609 .
2018-05-20 22:17:23 -07:00
James Lu
741e2c8ece
relay: allow claim to be disabled by default on new channels
...
Closes #581 .
2018-05-11 13:26:13 -07:00
James Lu
fc275cfdca
relay: remove service bots joined persistently when the home network disconnects
2018-05-11 13:21:16 -07:00
James Lu
aa4cedd945
relay: allow default LINKACL mode to be configured as an option ( #394 )
2018-05-11 13:09:54 -07:00
James Lu
30c1980b59
relay: consistently use bold instead of repr in LINKACL output
2018-05-09 23:33:00 -07:00
James Lu
0ae4aea133
relay: add a whitelist mode for LINKACL ( #394 )
2018-05-09 23:29:56 -07:00
James Lu
64a98120bf
relay: remove references to deprecated irc.proto
2018-05-09 22:44:17 -07:00
James Lu
b50ae89acc
relay: check service bot status before remote user presence
...
add_persistent_channels() is usable regardless of whether the service bot is ready, so we do not need to break if the remote copy of the service bot doesn't exist.
Closes #606 .
2018-05-09 21:44:04 -07:00
James Lu
f3c2149d7a
relay: fix variable confusion when managing service bots
...
We should be checking for service bot presence locally, and applying changes on the *remote* network.
2018-05-09 21:34:17 -07:00
James Lu
2f6c8d2938
Revert "relay: shortcut get_remote_user some more; only grab spawn lock if the user doesn't exist"
...
This seems to have caused sporadic duplicate user spawns once more (#602 )
This reverts commit 0bc24c94b2
.
2018-05-05 23:17:24 -07:00
James Lu
bf4863eb6d
relay, ServiceBot: remove dead code
2018-05-05 13:20:55 -07:00
James Lu
72c2fa38e9
relay: consistently use "Channel delinked." as part message for service bots too
2018-05-05 13:19:57 -07:00
James Lu
61d7bf18d3
relay: also attempt to part the PyLink service bot on delink
2018-05-05 13:15:17 -07:00
James Lu
92be421fad
relay: attempt to remove persistent channels on delink as well
...
Also, wrap remove_persistent_channel calls with a try/except when they may fail.
2018-05-05 12:57:17 -07:00
James Lu
8994811f54
relay: further fixes for persistent channels
...
Also, merge the 'relay_local' and 'relay_remote' namespaces into one.
2018-05-05 12:52:00 -07:00
James Lu
e9fe15bd7d
[WIP] Further revise the persistent channels implementation
...
- Make dynamic_channels per plugin as well as per network to work around relay-service conflicts (#265 )
- Introduce ServiceBot.(add|remove)_persistent_channel() to add/remove persistent channels and optionally join/part them
- Introduce ServiceBot.part(), which checks remaining persistent channels list and parts a channel only if it is still not marked persistent
- Refactor automode to autojoin channels on ENDBURST instead of plugin load
- Refactor relay to manage persistent channels on join/part/(de)init, both locally (namespace 'relay_local') and remotely (namespace 'relay_remote')
2018-05-04 22:52:26 -07:00
James Lu
4cdc19ac78
relay: fix is_internal_client call
2018-04-13 20:31:56 -07:00
James Lu
2f12a5b710
Initial work on dynamic service bot joining / parting ( #265 )
2018-04-12 12:45:33 -07:00
James Lu
f75b1eb356
Rename servers::<netname>::server_suffix -> servers::<netname>::relay_server_suffix
2018-04-03 17:43:02 -07:00
James Lu
9d21a5269f
relay: speed up shutdowns by not manually splitting off every relay server
...
The connection will soon be gone anyways, so this is fairly pointless.
2018-03-30 12:06:45 -07:00
James Lu
c978e1c52f
relay: fix a typo: CLIENTBOT_WHITELISTED_UMODES -> CLIENTBOT_WHITELISTED_CMODES
2018-03-30 12:01:38 -07:00
James Lu
0bc24c94b2
relay: shortcut get_remote_user some more; only grab spawn lock if the user doesn't exist
2018-03-24 00:31:15 -07:00
James Lu
bbb36cd956
relay: reuse get_relay_server_sid output when bursting groups of users
2018-03-24 00:25:05 -07:00
James Lu
ec8f744449
relay: only look up nick once in normalize_nick
2018-03-22 22:45:40 -07:00
James Lu
180bfa9917
relay: don't spam ulines with "notice failed" errors
2018-03-17 10:27:56 -07:00
James Lu
5bffe67416
relay: bandaid patch for freezes on startup when there are a ton of networks
...
The side effect of this patch is that it makes large bursts *really* CPU intensive. A proper fix for this will hopefully be introduced in the future.
2018-03-11 21:26:37 -07:00
James Lu
b7b49769e0
relay: silently abort if a network splits while we try to spawn a server or client
2018-03-11 21:25:42 -07:00
James Lu
57f77c676d
relay: don't show the network name when routing kicks through a server
...
This is redundant, as relay has always spawned subservers for quite some time now.
2018-03-02 21:42:25 -08:00
James Lu
d172831805
conf: rename methods to snake case ( #523 )
2018-03-02 20:23:48 -08:00