James Lu
029bb38af8
protocols: skip queuing when responding to PING
2017-03-28 22:30:33 -07:00
James Lu
d6243d9f89
protocols: raise NotImplementedError with proper reasons
2017-03-26 14:32:54 -07:00
James Lu
7ff5f47064
protocols: tweak mode type definitions
2017-03-25 13:47:16 -07:00
James Lu
45729d48cc
p10: mode definition tweaks
...
- rename cmode +d to "had_delayjoin" (from "had_delayjoins")
- add cmode +R for ircu
-
2017-03-25 13:47:16 -07:00
James Lu
1994d1171c
p10: add support for ircu proper
2017-03-25 13:47:16 -07:00
James Lu
e27095dd67
p10: set mode +x on targets when changing vHost
2017-03-25 13:47:15 -07:00
James Lu
6a32ae94fc
p10: implement FAKE and SETHOST IRCd checks
2017-03-25 13:47:15 -07:00
James Lu
235b296a69
Rename protocols/nefarious.py to protocols/p10.py
2017-03-25 13:47:15 -07:00
James Lu
fa6120a563
nefarious: add a snircd mode set, fix nef2 umode +Dd definitions
2017-03-25 13:47:15 -07:00
James Lu
6154a7fb09
nefarious: mark cmode +A and +U as type B ( #330 )
...
This is consistent with snircd as of 58af1fc4d0
2017-03-25 13:47:15 -07:00
James Lu
9e0e47064a
hybrid, ratbox: re-disable slash-in-hosts
2017-03-24 00:24:06 -07:00
James Lu
bde27b0dde
nefarious: define protocol_caps in the right class...
2017-03-23 22:46:12 -07:00
James Lu
efe468b0d2
protocols: declare slash-in-nicks, slash-in-hosts, underscore-in-hosts as necessary ( #337 )
2017-03-15 23:58:51 -07:00
James Lu
936535786e
clientbot: declare clear-channels-on-leave capability
2017-03-15 23:47:32 -07:00
James Lu
2ca0cf05a0
Start work on protocol capabilities ( #337 )
2017-03-15 23:32:47 -07:00
James Lu
d318fbac77
protocols: migrate away from irc.botdata ( #273 )
2017-03-05 00:09:01 -08:00
James Lu
47f0b7626f
clientbot: time out CAP/SASL after 5 seconds
...
Closes #424 .
2017-03-04 23:54:16 -08:00
James Lu
9420f21680
clientbot: send CAP LS before NICK/USER so that it consistently gets a response before connect
...
Previously, SASL was failing on networks like freenode, as the connection completed before a CAP response was received.
2017-03-03 15:39:28 -08:00
James Lu
01dd209647
inspircd: major->important
2017-02-18 14:45:23 -08:00
James Lu
cda5d15e31
inspircd: work around OPERTYPE changes in InspIRCd 3.x
2017-02-18 14:28:28 -08:00
James Lu
223dd3bf7b
nefarious: fix a typo causing crash on user mode change
...
(cherry picked from commit 3e4a980ea6
)
2017-02-17 22:28:11 -08:00
James Lu
8424870ec3
clientbot: abort when receiving a QUIT from uplink ( #405 )
2017-02-17 22:27:38 -08:00
James Lu
3e4a980ea6
nefarious: fix a typo causing crash on user mode change
2017-02-17 22:27:38 -08:00
James Lu
75158c47e2
clientbot: block PRIVMSG/NOTICE from being routed the wrong way ( #405 )
2017-02-17 22:27:38 -08:00
James Lu
f1fddefeac
protocols: catch S2S messages if they're being routed the wrong way ( #405 )
2017-02-17 22:27:38 -08:00
James Lu
f70e771000
unreal: ignore userpairs with only a prefix and no user
...
How is this even possible?!
Reported by @koaxirc.
(cherry picked from commit 9fac7cb1f3
)
2017-02-06 18:00:39 -08:00
James Lu
9fac7cb1f3
unreal: ignore userpairs with only a prefix and no user
...
How is this even possible?!
Reported by @koaxirc.
2017-02-05 22:23:20 -08:00
James Lu
f7768a00a0
inspircd: work around extraneous letters sometimes sent in FJOIN TS
...
Anope 1.8 potentially sends a trailing 'd' after the timestamp, which causes int() to error. This is technically valid in InspIRCd S2S because atoi() ignores non-digit characters, but it's strange behaviour either way:
<- :3AX FJOIN #monitor 1485462109d + :,3AXAAAAAK
Thansk to @koaxirc for reporting.
(cherry picked from commit 663e657bf5
)
2017-02-05 21:13:23 -08:00
James Lu
663e657bf5
inspircd: work around extraneous letters sometimes sent in FJOIN TS
...
Anope 1.8 potentially sends a trailing 'd' after the timestamp, which causes int() to error. This is technically valid in InspIRCd S2S because atoi() ignores non-digit characters, but it's strange behaviour either way:
<- :3AX FJOIN #monitor 1485462109d + :,3AXAAAAAK
Thansk to @koaxirc for reporting.
2017-02-05 21:06:42 -08:00
James Lu
359132045d
protocols: allow forwarding NOTICE from servers ( #384 )
2017-01-29 19:49:37 -08:00
James Lu
39db5aee04
ts6_common: properly handle KICK without a reason
...
This field is optional in TS6.
2017-01-14 11:08:24 -08:00
James Lu
7245e978cd
unreal: in MODE, also wrap to 12 modes per line
...
Closes #393 . Really fixes #253 .
2017-01-13 23:58:11 -08:00
Mitchell Cooper
5e79ea908d
inspircd: fix comment that says FIDENT in the FHOST handler ( #392 )
2017-01-12 21:00:24 -08:00
James Lu
4f0ca6367c
unreal: fix math error
...
len(":SIDAAAAAA ") is 11, not 9
2017-01-12 19:54:47 -08:00
James Lu
487a07671b
ts6: implement line wrapping in SJOIN ban bursts ( #253 )
2017-01-11 23:09:25 -08:00
James Lu
fb9144a715
clientbot: always add channels to users' channel lists in names reply
...
Do this regardless of whether the user is already added to the channel's user list/kick queue, since those are tracked separately.
Closes #388 .
2017-01-09 22:23:59 -08:00
James Lu
ccfc2f601d
clientbot: explicitly send /names after join ( #388 )
2017-01-09 22:23:59 -08:00
James Lu
602f35cb70
clientbot: fix message recognition treating nick prefixes without ident@host as servers
2017-01-09 22:23:59 -08:00
James Lu
70deb5a285
ts6: rewrite MODE wrapping to check message length and argument count ( #253 )
2017-01-08 21:20:42 -08:00
James Lu
aafd734e3a
ts6: remove leftover mode filtering in mode()
2017-01-08 20:43:08 -08:00
James Lu
ef4e1ecbab
unreal: count the server prefix in SJOIN line wrap ( #253 )
2017-01-06 18:29:47 -08:00
James Lu
4183a580d2
nefarious: implement text wrapping in BURST ( #253 )
...
Some of this is totally hacky, but it still works from my initial testing...
2017-01-06 18:24:32 -08:00
James Lu
92dcf3c28e
nefarious: implement text wrapping in outgoing MODE ( #253 )
2017-01-06 18:08:21 -08:00
James Lu
43002d466e
nefarious: fix misplaced log line from efe38264ef
2017-01-06 16:43:10 -08:00
James Lu
9a01a5285f
unreal: handle user mode changes via MODE
2017-01-02 12:20:20 -08:00
James Lu
fc3ee8d402
unreal: implement line wrapping for outgoing MODE
2017-01-02 12:16:35 -08:00
James Lu
efe38264ef
nefarious: remove extraneous userlist assignment in handle_burst
2017-01-02 10:25:37 -08:00
James Lu
6a90401d56
ircs2s_common: fix last commit (missing import)
2017-01-01 20:39:34 -08:00
James Lu
38350465c1
protocols: move handle_pong into ircs2s_common, be less strict about the ping argument
...
This fixes issues on UnrealIRCd where PONGs get ignored if the argument doesn't match the server name entirely (e.g. different case).
Treating all PONGs from the uplink as valid is totally fine, as all we care about is that the uplink is alive.
2017-01-01 20:24:34 -08:00
James Lu
945fc8f0f9
unreal: normalize whitespace in SJOIN as well
...
Sometimes there is an extra space after the mode list, so the query looks like
<- :000 SJOIN 1234567890 #channel +ntf [10t]:5 :000AAAAAA 000AAAAAB
instead of
<- :000 SJOIN 1234567890 #channel +ntf [10t]:5 :000AAAAAA 000AAAAAB
2017-01-01 19:55:29 -08:00
James Lu
4a519832e0
unreal: normalize nicks to UIDs in SJOIN handling
...
These can still be used by old Unreal 3.2 links.
2017-01-01 13:48:47 -08:00
James Lu
71bd5583fa
unreal: parse mode parameters in SJOIN as well!
...
Thanks to kevin for pointing this out.
2017-01-01 11:32:44 -08:00
James Lu
dc11638eb9
ts6 (and derivatives): don't burst bans that were already set
2017-01-01 00:28:55 -08:00
James Lu
803ccf7708
unreal: add SJOIN to required caps
2017-01-01 00:21:37 -08:00
James Lu
69be532c3c
unreal: actually send the remote's modes in SJOIN hooks
2017-01-01 00:20:29 -08:00
James Lu
0b8b4dc3cf
inspircd, nefarious: stop applying remote modes on sjoin
...
I have no clue why this code exists, but it looks wrong and probably is wrong.
2017-01-01 00:19:10 -08:00
James Lu
f851dc8ac1
unreal: implement modes in SJOIN (SJ3), respect S2S message length limits
...
Closes #378 . Ref #253
2017-01-01 00:00:01 -08:00
James Lu
278339b5e2
unreal: actually enable the SJOIN cap, handle ban bursts properly
2016-12-31 22:15:42 -08:00
James Lu
e566b99b75
clientbot: don't crash if we receive /who for someone we don't know
2016-12-27 22:16:12 -08:00
James Lu
f1da5c57e8
clientbot: don't repeat KICK hooks if the source is internal
...
This prevents KICK events from being relayed twice to Clientbot links, when the kicked user is also a Clientbot user.
2016-12-27 22:09:16 -08:00
James Lu
59f232d69f
clientbot: fix SASL PLAIN auth on Python 3.4
...
A strange bug causes "TypeError: unsupported operand type(s) for %: 'bytes' and 'tuple'" when formatting multiple args into a byte string using %b.
2016-12-27 18:16:15 -08:00
James Lu
a96bb0ce11
clientbot: make unattended SASL reauth optional
2016-12-19 01:06:49 -08:00
James Lu
68c618887f
clientbot: auto-attempt SASL when it is introduced in CAP NEW
2016-12-19 00:54:20 -08:00
James Lu
f42d49b8eb
cleintbot: only CAP END if we haven't registered yet
2016-12-19 00:52:28 -08:00
James Lu
880714b2f2
clientbot: implement CAP DEL, CAP NEW
2016-12-19 00:40:19 -08:00
James Lu
fdda28799c
clientbot: fix message tag parsing
2016-12-19 00:18:15 -08:00
James Lu
3a8710540c
Merge branch 'devel' into wip/ircv3
2016-12-19 00:10:07 -08:00
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
9bfa0c9bb8
clientbot: whitelist supported SASL mechanisms, and abort on invalid ones
2016-12-17 16:18:11 -08:00
James Lu
90e10f948e
clientbot: rename conf value sasl_mech -> sasl_mechanism
2016-12-17 16:18:11 -08:00
James Lu
0cc1ff8fa3
clientbot: log CAP REQ, CAP NAK events
2016-12-17 16:18:11 -08:00
James Lu
8b0b4bfcc4
clientbot: log SASL failures to warning instead of info
2016-12-17 16:18:11 -08:00
James Lu
651752d23d
clientbot: send CAP END if SASL is disabled
2016-12-17 16:18:11 -08:00
James Lu
9cc817d544
clientbot: require SSL for SASL external, better grammar in SASL misconfiguration errors
2016-12-17 16:18:11 -08:00
James Lu
ffed5e3378
clientbot: also CAP END on 906 (SASL aborted)
2016-12-17 16:18:11 -08:00
James Lu
8666151189
clientbot: properly verify ACKed/NAKed caps, add support for SASL PLAIN & EXTERNAL
2016-12-17 16:17:36 -08:00
James Lu
3bc9b1bc55
clientbot: implement IRCv3.2 CAP and IRCv3.1 multi-prefix ( #290 )
2016-12-16 22:28:40 -08:00
James Lu
cbc7f438d2
clientbot: implement preliminary message tags parsing
...
Untested so far...
2016-12-16 22:28:22 -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