James Lu
57b566286d
relay: make clientbot modesync more configurable ( #287 )
2016-09-25 20:07:16 -07:00
James Lu
4222cc30a8
relay, clientbot: implement clientbot mode sync
...
Closes #287 .
2016-09-25 20:07:16 -07:00
James Lu
b9d8ec5039
relay: listen to PYLINK_SERVICE_JOIN from services_support
2016-09-24 12:13:33 -07:00
James Lu
a040c3c7d2
ServiceBot: modularize join() for explicit channel joining ( #326 )
2016-09-23 23:43:07 -07:00
James Lu
3900833458
relay: allow configuring custom relay server suffixes
...
Closes #333 .
2016-09-23 22:49:04 -07:00
James Lu
b467da13b1
relay: clobber colour codes in hosts
2016-09-20 06:58:04 -07:00
James Lu
838ea6bfc4
relay: skip iterating over modetype definitions during reverse mode lookup
...
This fixes a bug when setting +l on UnrealIRCd, where the type C mode definition is coincidentally also equal to 'l'. Reported by kevin via IRC.
2016-09-07 20:37:57 -07:00
James Lu
dd083b9b8d
relay: remove extraneous comment
2016-09-06 20:11:08 -07:00
James Lu
c5c77eeb97
protocols: chandata->channeldata for MODE and JOIN hooks
2016-09-02 17:52:19 -07:00
James Lu
663d03ed2c
relay/clientbot: begin work on outgoing PMs to clientbot users ( #318 )
...
This still needs to implement PMs going the other way around, and should eventually distinguish between PMs and private notices.
2016-08-31 14:08:28 -07:00
James Lu
1c4cb94a13
relay: block /OJOIN in claim
2016-08-27 19:09:02 -07:00
James Lu
3c7b201f57
protocols: rename 'oldchan' in MODE payloads to 'chandata'
2016-08-27 17:46:35 -07:00
James Lu
09c98f66ff
relay: fix overzealous host normalization due to variable replacement during iteration
2016-08-21 18:06:53 -07:00
James Lu
b572c58223
relay: {} are valid nick chars too...
2016-08-20 17:36:24 -07:00
James Lu
e1fab8c153
relay: fix a typo in comment
2016-08-13 11:40:01 -07:00
James Lu
1c83f59baa
relay: rewrap some poorly placed comments
2016-08-13 11:03:58 -07:00
James Lu
63f40c9565
relay: delay RELAY_JOIN hooks to a second loop. Closes #311 .
2016-08-12 18:47:12 -07:00
James Lu
e75c0d075f
relay: on clientbot, explain _why_ calling LINK twice is needed
2016-08-11 12:51:08 -07:00
James Lu
bdadb27466
relay: reverse getPrefixModes() output so the right mode order is passed to sjoin()
...
This prevents users from bursted as "+@~UID" instead of "~@+UID", for example.
2016-08-09 18:39:13 -07:00
James Lu
990f24938b
relay: convert / to . in hostnames on hybrid
...
Also, switch this check to a whitelist instead of a blacklist for better compatibility.
2016-08-07 15:16:37 -07:00
James Lu
81ffa93bad
relay: block attempts to LINK if local TS is lower than remote
...
Closes #301 .
2016-08-04 13:04:32 -07:00
James Lu
72da00d23c
relay: block clientbot networks from hosting relays
2016-08-04 10:55:00 -07:00
James Lu
7a0fd1caa3
relay: rework "target in channel" requirements for clientbot links
...
Closes #305 .
2016-08-04 10:47:06 -07:00
James Lu
66067c272f
relay: limit hosts to 63 chars, not 64
2016-08-03 00:21:30 -07:00
James Lu
f2a5e1dc78
relay: catch errors on remove_network() and ignore them
2016-07-31 20:36:27 -07:00
James Lu
accd5b70b3
relay: show reasons when clientbot is force parted or kicked
2016-07-29 01:08:14 -07:00
James Lu
6bc3191077
relay: only block cmodes from relaying on clientbot ( #289 )
2016-07-29 00:54:29 -07:00
James Lu
8047186c58
plugins, coremods: remove usage of irc.conf ( #273 )
2016-07-27 17:02:04 -07:00
James Lu
fa1ce45bf3
relay: add configurable list of nick globs to always tag
...
Closes #276 .
2016-07-26 16:01:42 -07:00
James Lu
832f22e7f0
relay: remove unnecessary "Relay plugin unloaded" quits
2016-07-24 11:13:51 -07:00
James Lu
dc364b3e9e
relay: explicitly don't sync modes originating from clientbot
2016-07-24 11:11:54 -07:00
James Lu
05a5ec7e19
relay: don't show "real server" for clientbot users, it's not accurately tracked
2016-07-23 22:30:10 -07:00
James Lu
38793654ea
relay: error when someone attempts to PM a clientbot user
...
PMs aren't routed through Clientbot yet.
2016-07-23 21:09:25 -07:00
James Lu
cadf0a336c
relay: limit auto-rejoin-on-part to relay channels
2016-07-23 19:06:35 -07:00
James Lu
08525e8eba
relay: treat forced parts to clientbot as clearchan
2016-07-23 19:03:07 -07:00
James Lu
3e91118644
relay/clientbot: implement kick, join, part relaying
2016-07-23 12:25:52 -07:00
James Lu
a9be5d0dc7
relay: treat kicks to the service bot on clientbot networks as clear channel
...
This is so if the bot is kickbanned from a channel, it will remove all users to prevent ghosts on the channel.
* cbot.relay has kicked ChanServ/cbot from #test ((xdxdxd.xdxdxd/cbot) Clientbot was kicked from channel.)
2016-07-23 11:20:52 -07:00
James Lu
eb24e01619
relay: allow slashes for clientbot
2016-07-20 23:55:34 -07:00
James Lu
94f2422a1e
relay: show secret channels in LINKED to those in the channel
...
Closes #278 .
2016-07-16 21:07:08 -07:00
James Lu
b7852b1d01
relay: hint at JUPE being a reason why server spawning might fail
2016-07-13 18:56:55 -07:00
James Lu
5c7524bcf3
relay: use the "official" method of removing bad networks
2016-07-13 18:49:51 -07:00
James Lu
31bf984996
Revert "relay: don't try to force network disconnects"
...
This reverts commit 77edd9870c
.
2016-07-13 18:43:22 -07:00
James Lu
92466e4a00
relay: make tag_nicks default to True
2016-07-11 23:35:16 -07:00
James Lu
59f6c861e0
relay: treat SVSNICK as a cue to tag nicks
...
Closes #116 .
2016-07-11 23:23:26 -07:00
James Lu
bc369bf6a6
relay: force tags when a nick collision happens
2016-07-11 21:54:48 -07:00
James Lu
95ff33876c
relay: handle KILLs to untagged clients as a cue to tag them ( #116 )
2016-07-11 21:43:43 -07:00
James Lu
5bfba0a411
relay: make default nick tagging and separator global options ( #116 )
2016-07-11 21:43:43 -07:00
James Lu
77edd9870c
relay: don't try to force network disconnects
...
This doesn't work, and seems to cause PyLink to freeze instead.
2016-07-11 16:35:35 -07:00
James Lu
9c2bec7a3d
relay: don't create relay clones with the user's original TS
...
There's no point of doing this. Relay should purposely lose nick collisions anyways because it can simply switch to the next one.
2016-07-10 22:25:01 -07:00
James Lu
df41dabb71
relay: drop prefix modes if the target doesn't have a relay clone yet
...
This fixes modes like ('+v', None) from being accidentally sent by Relay, when Automode happens to set modes before all relay clients are spawned.
2016-07-07 22:16:34 -07:00
James Lu
00766041f3
plugins: make DB save delay configurable
2016-07-07 22:16:21 -07:00
James Lu
b3310eaf78
relay: also send internal hook for services login, for integration with automode
2016-07-07 21:43:25 -07:00
James Lu
0d502095c5
relay: integrate with automode by sending relay JOINs as a hook
2016-07-07 21:38:12 -07:00
James Lu
81fca49738
relay: hide disconnected networks from LINKED output
...
Closes #258 .
2016-07-03 12:40:23 -07:00
James Lu
7c6daa839c
relay: don't error if servers for current net were already removed
2016-07-01 22:20:10 -07:00
James Lu
e3170cda83
relay: remove another _ in opertype handling
2016-07-01 21:07:07 -07:00
James Lu
1a0983b8e9
relay: prefix nicks starting with - (this is invalid)
2016-07-01 19:19:11 -07:00
James Lu
c9b6695f90
relay: make sure normalized nicks have no invalid characters
...
This affects the separator option too: if someone puts something invalid in that field, this will coerse bad chars to | instead of letting the IRCd deal with it.
2016-07-01 19:16:47 -07:00
James Lu
042a173d87
relay: use a 5 second timeout when acquiring all threading locks
2016-07-01 18:54:35 -07:00
James Lu
06ee35dcfc
relay: catch various errors if a relay client is killed while commands are called from it
2016-07-01 18:54:07 -07:00
James Lu
4cd49296e5
Merge remote-tracking branch 'origin/master' into devel
2016-06-30 19:00:39 -07:00
James Lu
91a663d5c7
commands, relay: use irc.reply() with private=True instead of irc.msg()
...
This is more flexible, etc.
2016-06-30 18:43:56 -07:00
James Lu
14f569fd7c
relay: improve command help, add featured command definitions
2016-06-30 18:05:27 -07:00
James Lu
5f2da1c8c3
relay: cap waiting time for irc.connected to 5 seconds
2016-06-29 18:12:50 -07:00
James Lu
8b39635fa8
relay: don't expect that serverdata['channels'] is always present
2016-06-27 23:00:39 -07:00
James Lu
8af4b0c06d
relay: use extra_channels to persistently join the PyLink bot to relay channels
...
Closes #247 .
2016-06-25 14:21:18 -07:00
James Lu
1ce6102ae8
relay: allow toggling netsplit hiding
2016-06-25 13:47:59 -07:00
James Lu
1a6bb714ac
relay: drop spawn_servers toggle, remove "Relay network lost connection" quits
...
Relay server spawning is now always on - there's no real reason why it shouldn't work.
Closes #237 .
2016-06-25 13:27:24 -07:00
James Lu
f009a739bc
Merge remote-tracking branch 'origin/master' into devel
2016-06-25 11:36:55 -07:00
James Lu
f445f7baef
relay: be more tolerant to users sending messages to channels they're not in
...
This extends the routing of messages from servers across the relay via the main PyLink client to users too.
This allows atheme's GameServ, various commit announcers, etc. to work over relay regardless of whether +n is set.
2016-06-25 11:31:04 -07:00
James Lu
e966fe7e56
relay: typo in comment
2016-06-25 10:43:07 -07:00
James Lu
504a9be7d6
relay: attempt to eliminate freezing when networks are down
2016-06-24 18:41:13 -07:00
James Lu
90ee20ee8b
relay: revert changes to mode handling that only bursts modes from the owning network on connect
2016-06-22 21:41:04 -07:00
James Lu
6fc5fa3130
relay: split relayModes() into getSupportedCmodes() for better reusability
...
First part of #248 .
2016-06-22 19:49:49 -07:00
James Lu
8969cfb74e
Merge branch 'master' into devel
...
Conflicts:
plugins/networks.py
2016-06-22 19:10:59 -07:00
James Lu
cfa2cda885
relay: only reverse modes for CLAIM if there are any to reverse
2016-06-21 20:29:48 -07:00
James Lu
481d70eff8
New import paths for properly installed pylinkirc
2016-06-20 18:18:54 -07:00
James Lu
87cbbc9c57
relay: clearer error message when DESTROY'ing a channel you didn't create
2016-06-19 12:32:27 -07:00
James Lu
d3e207d653
relay: axe unused variable
2016-06-19 12:32:12 -07:00
James Lu
bcc754cf0b
relay: allow forcing slashes on unsupported IRCds
...
This adds an undocumented option "relay_force_slashes" to allow slashes in nicks anyways, for IRCds that are, for example, TS6 or P10 variations that don't validate remote nicks.
2016-06-19 12:32:03 -07:00
James Lu
e47738c27f
relay: forbid linking two channels on the same network
2016-06-19 12:14:09 -07:00
James Lu
9732d01a9e
relay: default DB to {} so it doesn't flip out on 'load relay'
...
(cherry picked from commit db56513ac7
)
2016-06-17 07:19:13 -07:00
James Lu
e1d3003683
relay: less accusatory message for links blocked by LINKACL
2016-06-08 16:00:25 -07:00
James Lu
ed19c2b24a
relay: block topic changes from the main SID, not the PyLink client
2016-05-22 19:12:11 -07:00
James Lu
8c55eb43e7
relay/commands: reformat showuser output slightly
2016-05-21 23:05:39 -07:00
James Lu
03790b5939
relay: implement LINKED <netname> to filter by network
...
Closes #227 .
2016-05-21 22:55:06 -07:00
James Lu
357eabe27a
relay: optionally relay home server & login details in /WHOIS
...
Closes #221 . Closes #222 .
2016-05-19 23:32:43 -07:00
James Lu
4e8de60005
core: Rewrite WHOIS handlers to simply listen to a custom hook (PYLINK_CUSTOM_WHOIS)
2016-05-19 23:32:43 -07:00
James Lu
ae87def11f
Purge c_ and u_ prefixes from named modes
...
Closes #217 .
2016-05-15 11:05:02 -07:00
James Lu
75798b5fba
relay: don't relay kicks to service bots
2016-05-14 16:24:26 -07:00
James Lu
28f992d3cb
relay: don't spawn clones for service bots
2016-05-14 16:17:20 -07:00
James Lu
3930891e9f
relay: don't rely on irc.pseudoclient as much during init
2016-05-14 14:03:59 -07:00
James Lu
bcc648adff
relay: support relaying more channel modes
...
flood, flood_unreal, joinflood, freetarget, c_noforwards, and noinvite are whitelisted with this commit.
2016-05-11 21:18:30 -07:00
James Lu
366836b821
relay: burst topics from the main PyLink server
...
When a channel is being initialized, PyLink has no specific network to propagate topics from; they just get sent from whichever linked network we happened to iterate over first. This prevents misleading topic setters like 'randomnet.relay' from showing up.
2016-05-02 18:54:46 -07:00
James Lu
917b0de596
relay: log spawnlocks calls
2016-05-01 14:59:13 -07:00
James Lu
f6a9f0729a
relay: don't error if the privmsg source on a remote network is missing
...
This can happen when someone speaks while a network is initializing, for example.
2016-05-01 14:59:13 -07:00
James Lu
bb8a548e74
relay: make handle_quit error-tolerant if the target is missing
...
In cases where multiple networks disconnect simultaneously, the relay user for a quitting client from the first dying network might have also disappeared while handle_disconnect was processing the disconnection of a second dying network. This should take into account those situations.
2016-05-01 14:59:13 -07:00
James Lu
54987fde4e
relay: code cleanup, possibly fix clones for PyLink clients being spawned from rare race conditions
2016-05-01 14:59:13 -07:00
James Lu
ab5624343b
relay: fix regression causing 'load relay' to freeze
2016-05-01 14:59:13 -07:00
James Lu
69cd3cfbf8
relay: fix race conditions when multiple networks disconnect simultaneously
2016-05-01 14:59:13 -07:00