James Lu
5f6337a734
Merge branch 'master' into devel
...
Conflicts:
plugins/networks.py
2016-12-18 00:15:24 -08:00
James Lu
194a62fcea
protocols: implement basic nick collision detection in UID handlers
...
Closes #285 . Closes #375 .
2016-12-18 00:13:42 -08:00
James Lu
7e37a90c80
clientbot: delete channels on kick / part, or if a channel becomes empty after parting
...
Closes #314 .
2016-12-16 20:50:36 -08:00
James Lu
0815df1bca
Irc: rewrite isInternalClient to use getServer & return a boolean ( #355 )
2016-11-09 18:55:53 -08:00
James Lu
c57fabc9ef
core, protocols: add server argument to IrcUser ( #355 )
2016-11-09 18:40:16 -08:00
James Lu
405b886ba2
clientbot: overload _getUid() to deal with nick collisions between virtual clients and Clientbot users
...
Closes #327 .
(cherry picked from commit 05e2d6d060
)
2016-10-14 22:33:29 -07:00
James Lu
eb64190228
Clientbot: use a more specific realname fallback
...
(cherry picked from commit 288a2fffd7
)
This is cherry-picked as a prerequisite for the next commit.
2016-10-14 22:33:10 -07:00
James Lu
05e2d6d060
clientbot: overload _getUid() to deal with nick collisions between virtual clients and Clientbot users
...
Closes #327 .
2016-10-14 22:29:13 -07:00
James Lu
7917502799
clientbot: make oper status tracking a network-specific option
2016-10-09 19:04:59 -07:00
James Lu
288a2fffd7
Clientbot: use a more specific realname fallback
2016-10-07 21:08:55 -07:00
James Lu
5c2e7e9324
Clientbot: unconditionally block MODE hooks if we're the sender
...
This is another check to prevent possible infinite loops in MODE syncing.
2016-10-07 20:54:52 -07:00
James Lu
72ca41df33
Irc, clientbot: disallow unsetting bans that don't exist
...
This fixes an infinite loop when:
- Clientbot modesync is enabled
- 2 or more clientbot linked networks show unsetting modes that weren't enabled (e.g. charybdis)
- A user removes a ban
The workaround in clientbot prevents this process from triggering an infinite loop when a mode change acknowledgement is received for unsetting a non-existant ban,
though multiple -b mode changes may still be seen due to race conditions in updating the various networks' states.
2016-10-07 20:54:52 -07:00
James Lu
aa0d1596b0
ts6: don't crash when CHGHOST target is a nick instead of UID
...
(cherry picked from commit 4dcbc85a81
)
2016-10-01 13:43:18 -07:00
James Lu
36e18929de
docs, hybrid, ratbox: Mode definition updates
2016-10-01 13:41:11 -07:00
James Lu
eb79f77bd2
ratbox: fixes for mode name consistency
2016-10-01 13:40:10 -07:00
James Lu
19c5a8c64f
ratbox: update mode definitions
2016-10-01 13:00:04 -07:00
James Lu
4dd0709f66
protocols, core: remove unused imports
2016-10-01 12:43:12 -07:00
James Lu
625e7b8aae
ratbox: handle ENCAP LOGIN ( #338 )
2016-10-01 12:39:37 -07:00
James Lu
d943a8286f
ratbox: fix typo in outgoing REALHOST
2016-10-01 00:40:20 -07:00
James Lu
4dcbc85a81
ts6: don't crash when CHGHOST target is a nick instead of UID
2016-10-01 00:34:38 -07:00
James Lu
bd9885182e
ratbox: stub updateClient to prevent hostname desyncs
...
In ratbox, arbitrary host changing via CHGHOST is not supported.
2016-10-01 00:20:54 -07:00
James Lu
39987b6dcc
ts6: supply SAVETS_100 capability for ratbox
2016-10-01 00:11:50 -07:00
James Lu
d6cb5c1ed0
ratbox: implement REALHOST ( #338 )
2016-09-30 23:46:23 -07:00
James Lu
f618feea26
Initial protocol support for Ratbox ( #338 )
2016-09-30 23:33:27 -07:00
James Lu
d9fdd9dfcb
ts6: modularize required capabilities
2016-09-30 23:33:04 -07:00
James Lu
1cb320f5f4
clientbot: only send MODE if there are modes left after filtering
2016-09-25 20:21:01 -07:00
James Lu
8dd0cb19af
clientbot: fix outgoing mode filtering
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
fe5a40d632
ts6: handle legacy UID by wrapping around EUID
2016-09-18 14:13:05 -07:00
James Lu
8589feaedf
protocols: fix incomplete renames from c5c77eeb97
2016-09-12 20:16:56 -07:00
James Lu
b43d714011
clientbot: ignore WHO replies for clients we don't know
...
This fixes various KeyErrors, etc. when processing the WHO reply later on, as Clientbot doesn't track state for anyone who doesn't share a channel with or talks to the bot.
Reported by Kev`Bz via IRC.
2016-09-08 18:45:34 -07:00
James Lu
90f1999c6d
clientbot: downgrade bad updateClient() calls to warning
2016-09-08 17:44:02 -07:00
James Lu
ffa89f1e01
nefarious: fix UnboundLocalError when no modes are given on user introduction
...
Reported by Kev`Bz via IRC.
2016-09-07 06:57:03 -07:00
James Lu
c5c77eeb97
protocols: chandata->channeldata for MODE and JOIN hooks
2016-09-02 17:52:19 -07:00
James Lu
d1e2dfcf61
clientbot: only call spawnClient for new message sources after irc.pseudoclient is set
2016-09-01 13:08:20 -07:00
James Lu
4d4dbb7764
Revert "clientbot: return existing PUIDs in spawnClient if nick exists"
...
This reverts commit 113fbf9eb8
.
Incomplete fix: would confuse virtual service bots and external users if they had the same nick.
2016-09-01 13:00:27 -07:00
James Lu
113fbf9eb8
clientbot: return existing PUIDs in spawnClient if nick exists
...
This fixes some silly UID duplication with FNC handling.
2016-08-31 23:22:24 -07:00
James Lu
ae63f72cf9
clientbot: decouple inbound and outbound nick changes
2016-08-31 23:12:45 -07:00
James Lu
9bda4094e4
clientbot: handle pre-auth FNC better
...
Closes #321 .
2016-08-31 23:05:36 -07:00
James Lu
be960bf27b
clientbot: handle numerics 463 to 465 as fatal error
2016-08-31 22:46:46 -07:00
James Lu
cf5898fb45
clientbot: only send updateClient() hooks if something changes
...
Closes #323 .
2016-08-31 22:32:12 -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
53de6542f6
clientbot: in nick(), make sure irc.pseudoclient exists
2016-08-27 20:39:35 -07:00
James Lu
42a104534a
unreal: ensure type safety from last commit
2016-08-27 19:19:47 -07:00
James Lu
8f8cd95395
unreal: use umode +xt instead of SETHOST in spawnClient
...
This is to ensure vHosts for all PyLink clients are respected.
2016-08-27 19:14:37 -07:00
James Lu
ae94bec6b8
protocols: add a chandata key to SJOIN hook payloads
2016-08-27 18:56:36 -07:00
James Lu
3c7b201f57
protocols: rename 'oldchan' in MODE payloads to 'chandata'
2016-08-27 17:46:35 -07:00
James Lu
814c714145
clientbot: fix nick() using the wrong arguments
...
I should learn to proofread...
Also, outgoing NICK changes should not implicitly update the state; we should wait for the IRCd's acknowledgement instead.
2016-08-24 22:54:53 -07:00
James Lu
29bfe108fe
clientbot: only send SQUIT payload if nicks are affected
2016-08-21 17:43:10 -07:00
James Lu
8cf771be2f
ts6: fix typo
2016-08-20 17:36:56 -07:00