James Lu
ba17821af4
Declare visible-state-only by default in ClientbotBaseProtocol
2019-02-16 16:43:05 -08:00
James Lu
ac8b7babf1
inspircd: don't allow _ in hosts
...
CHGHOST on InspIRCd 2.0 does not see this as valid.
2019-02-12 15:55:10 -08:00
James Lu
cfbadb4539
Move _squit, _get_SID, _get_UID wrappers into PyLinkNCWUtils
...
ClientbotBaseProtocol requires these for the squit wrapper to work.
2019-02-12 00:38:37 -08:00
James Lu
873283e61e
clientbot: properly bounce kicks on networks not implementing them
2019-02-10 13:01:31 -08:00
James Lu
d089b8d40e
clientbot: split wrapper stuff into a ClientbotBaseProtocol class
...
Closes #632 .
2019-02-10 12:40:02 -08:00
James Lu
52f588c920
Track affected servers in SQUIT hooks
2018-12-27 12:09:40 -08:00
James Lu
4d39ad1c84
unreal: bump protocol version to 4200
...
Corresponding to UnrealIRCd 4.2.0.
2018-10-05 23:57:20 -07:00
James Lu
2f4476eb0c
unreal: remove invalid comparison
...
(Regression from commit fac6fe506f
)
2018-09-21 21:40:56 -07:00
James Lu
667fa610ec
unreal: remove duplicate conversion
2018-09-16 11:29:25 -07:00
James Lu
e929fda293
unreal: Bump protocol version to 4019 (4.0.19-rc1)
2018-09-12 17:35:30 -07:00
James Lu
d5fd7b03f5
unreal: enable slash-in-hosts, it seems to work fine
2018-09-12 17:35:25 -07:00
James Lu
fac6fe506f
unreal: use SJOIN in join() to work around weird TS corrupting bugs
...
This seems to be what Unreal itself does anyways.
2018-08-25 18:50:51 -04:00
James Lu
298913200c
clientbot: properly handle cases when the bot is told to kick itself
...
- Treat kicks to the PyLink client as a real user kick instead of a virtual one
- Forward on kick hooks if the PyLink client is kick target - this allows things like autorejoin to work
Closes #377 .
2018-08-25 01:14:26 -04:00
James Lu
5838d88404
networks: reload shared modules used by protocol modules too
2018-08-23 02:57:03 -04:00
James Lu
9cf507183d
clientbot: filter PART hooks for only parts we didn't initialize
...
This fixes Relay being confused by its own "Relay plugin unloaded" /part's, and makes Clientbot's behaviour in this regard consistent with other protocols.
2018-07-18 19:14:47 -07:00
James Lu
bba235bba2
Update GitHub repository address
2018-07-08 12:54:10 -07:00
James Lu
76c0db15c4
core: merge TLS validation code into IRCNetwork ( #592 )
...
Certificate verification is now enabled for all Clientbot networks, but not yet for S2S links (self-signed certs are common here and direct IP links even more so)
2018-06-15 15:29:15 -07:00
James Lu
4524aebbac
clientbot: initial pass of TLS cert validation ( #592 )
...
This works OK, but we should make the validation options built-in instead of clientbot-specific.
2018-06-15 02:47:12 -07:00
James Lu
040b009fcb
clientbot: ignore RPL_ENDOFBANLIST (368) responses for removed channels
2018-06-15 02:19:56 -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
1a97a32ef5
ircs2s_common: return just the kill reason as text in kill parsing ( #520 )
2018-06-11 19:26:42 -07:00
James Lu
31a0d36990
clientbot: ignore missing args in 324 / RPL_CHANNELMODEIS
...
Fixes #537 .
2018-06-08 18:45:20 -07:00
James Lu
1ab5d614c0
protocols: convert user TS to an int when receiving new users ( #594 )
2018-05-26 16:26:14 -07:00
James Lu
f20fa5e995
Add User.get_fields(), and rework plugins to fix $nick broken expansions
...
User.nick is no longer a writable attribute since a085aed924
, so it won't show up in __dict__ now.
get_fields() replaces the User.__dict__ hack various plugins used and also provides some new expansion variables:
- $sid and $server expand to the server ID and name respectively
- $modes and $channels are now preformatted strings
- $netname expands to the network name
$manipulatable and $_irc were removed since their values aren't quite meaningful as strings
2018-05-26 02:12:38 -07:00
James Lu
b9f782868c
inspircd: remove users from the state immediately when sending a kill
...
This matches Anope and Atheme's behaviours.
Closes #607 .
2018-05-21 00:33:13 -07:00
James Lu
3120fa5396
clientbot: stop sending duplicate JOIN hooks
...
Also set _clientbot_initial_who_received on 315/ENDOFWHO, instead of on the first /who response we get.
Really fixes #551 .
2018-05-09 22:31:19 -07:00
James Lu
451db74f0c
clientbot: don't send duplicate away statuses
2018-05-09 22:23:14 -07:00
James Lu
f54382534c
kick and kill should raise NotImplementedError when not supported by a protocol
...
Closes #605 .
2018-05-09 22:19:03 -07:00
James Lu
8eba402a33
clientbot: drop pre-WHO join bursting with userhost-in-names, it's too unreliable
...
Closes #602 .
Closes #551 .
2018-04-24 12:39:29 -07:00
James Lu
c7159b9cad
core: move clearing channels on kick/part to coremods/handlers
...
This is for consistency with the rest of the state cleanup code.
2018-04-07 22:44:00 -07:00
James Lu
9e212fc0a4
protocols: migrate utils.wrapArguments, splitHostmask use to camel case ( #523 )
2018-03-02 20:23:47 -08:00
James Lu
a2783d74c5
unreal: bump protocol version to 4017 (no changes needed)
2018-03-02 20:23:47 -08:00
James Lu
804791b8af
clientbot: support expansions ($nick, etc) in autoperform
2018-02-20 23:19:32 -08:00
James Lu
9cdb224c02
Replace use of conf.conf['bot'] with conf.conf['pylink']
2018-02-18 23:26:39 -08:00
James Lu
37be73d39c
clientbot: add STATUSMSG support ( #570 )
2018-02-18 22:15:19 -08:00
James Lu
ea84497359
protocols: remove the endburst_delay option from spawn_server
...
Interestingly, this was never documented in the protocol module spec...
2018-02-10 15:44:09 -08:00
James Lu
a425f873b5
relay, inspircd: move endburst delay code to a private API
...
This is a very specific hack that shouldn't be extended across the protocol module spec. So far, all other protocol modules ignore the endburst_delay option anyways.
2018-02-10 15:34:07 -08:00
James Lu
18c1a277f5
clientbot: remove extraneous use of to_lower() in handle_part
2018-01-31 19:35:24 -08:00
James Lu
74848853ac
clientbot: fix KeyError caused by lower() in spawn_server
...
This affected connections to afternet for example.
2018-01-31 19:33:05 -08:00
James Lu
84f6190478
inspircd: only read METADATA modules changes from the uplink
...
Closes #567 .
2018-01-25 09:52:29 -08:00
James Lu
6bb2198710
inspircd: move _modsupport.clear() to a _post_disconnect override
...
Speculative fix for #567 .
This may be caused by a race condition between post_connect and handle_capab, since the remote server can send its server data before we start sending ours.
2018-01-21 13:27:59 -08:00
James Lu
043a147b41
p10: fix hashed cloaks check reading from the wrong config variable
2017-12-31 12:09:36 -08:00
James Lu
56fa626605
inspircd: use clear() instead of replacing the _modsupport set
...
Maybe this will fix issues with _modsupport not being completely filled?
2017-12-27 11:48:00 -08:00
James Lu
7c0d279f61
inspircd: raise NotImplementedError instead of only warning when a CHG* module is missing
2017-12-22 12:41:48 -08:00
James Lu
92427201f1
inspircd: track module (un)loading
...
Closes #555 .
2017-12-22 12:38:48 -08:00
James Lu
958bb351ca
clientbot: log warnings if the bot cannot join a channel
...
Closes #533 .
This adds handlers for the following numerics:
* ERR_TOOMANYCHANNELS (405)
* ERR_CHANNELISFULL (471)
* ERR_INVITEONLYCHAN (473)
* ERR_BANNEDFROMCHAN (474)
* ERR_BADCHANNELKEY (475)
* ERR_BADCHANMASK (476)
* ERR_NEEDREGGEDNICK (477)
* ERR_BADCHANNAME (479)
* ERR_SECUREONLYCHAN / ERR_SSLONLYCHAN (489)
* ERR_DELAYREJOIN (495)
* ERR_OPERONLY (520)
2017-12-22 12:28:27 -08:00
James Lu
145a4677f6
ircs2s_common: add handling for nick@servername messages
2017-12-21 02:57:10 -08:00
James Lu
8dbbe65a1c
ircs2s_common: remove useless statusmsg splitting code
...
We used to do this in order to lowercase the channel part of ~#channel messages correctly, but that is no longer needed as of 9702030bf5
.
2017-12-21 02:11:28 -08:00
James Lu
f64976b1ed
p10: implement outgoing knock() as a wrapper over NOTICE
2017-12-21 01:53:41 -08:00
James Lu
16b491fdab
ts6_common, p10: declare protocol cap has-statusmsg
2017-12-21 01:34:41 -08:00