James Lu
fdea348cbe
move hook calling out of pr/insp and into Irc
2015-07-17 16:09:50 -07:00
James Lu
95853924ad
Revert "protocols/: thread calls to each event hook to prevent blocking globally"
...
This reverts commit 99fd6060a7
, which caused a bunch of race conditions in relay :/
Ref #59 .
2015-07-17 15:13:57 -07:00
James Lu
f41e1a2eb5
Fixes for connection handling?
...
XXX: using SQUIT on the PyLink server doesn't respect autoconnect delays; why?
2015-07-17 15:08:24 -07:00
James Lu
99fd6060a7
protocols/: thread calls to each event hook to prevent blocking globally
...
Closes #59 .
2015-07-17 14:35:02 -07:00
James Lu
9bef93c341
More stuff for PINGing uplink and autoreconnect ( #42 #59 #57 )
...
Doesn't quite work yet; still blocks everything on disconnect for some reason...
2015-07-17 13:41:14 -07:00
James Lu
0aa2f98705
Move client spawning, command / KILL / KICK handling outside the protocol module
...
New plugin 'coreplugin' takes care of command/KILL/KICK handling, while client spawning is moved into Irc.spawnMain() and is used by the former.
Closes #33 .
2015-07-16 21:52:44 -07:00
James Lu
73c625a429
pr/insp: don't raise KeyError when removing channel from user fails
2015-07-16 16:48:54 -07:00
James Lu
d97fce8205
IrcUser & pr/insp: Implement user channel tracking
2015-07-16 12:20:40 -07:00
James Lu
f9d82153bb
pr/insp: map FIDENT/FHOST/FNAME hooks to their CHG* counterparts
2015-07-15 23:23:46 -07:00
James Lu
e413a21e68
pr/insp: send the list of affected users in handle_squit
2015-07-15 19:08:49 -07:00
James Lu
798476c850
pr/insp: don't crash when a server sends TOPIC
2015-07-15 19:08:36 -07:00
James Lu
6e37e1c05d
make Irc.connected a threaded event object, setting it to True ONLY when we receive server capabilities from our uplink
...
The previous behavior set this to True as soon as we ran connect(), but this caused problems because the default capabilities (i.e. nicklen)
that Irc() initializes won't match the real value of the network.
2015-07-15 13:49:12 -07:00
James Lu
67190d8329
pr/insp: send the user data of the kileld user in handle_kill
2015-07-14 23:23:35 -07:00
James Lu
ef0436c906
inspircd: merge _sendFromUser and _sendFromServer into _send
...
They do exactly the same thing, just with different variable names. Keeping two of these is useless...
(why didn't I notice this earlier?)
2015-07-14 22:33:56 -07:00
James Lu
8942c2fa08
pr/insp: add kickServer
2015-07-14 22:32:05 -07:00
James Lu
79a1ac9006
pr/insp: fix sjoinServer not updating the internal modes list
2015-07-14 18:23:15 -07:00
James Lu
994b2961ee
pr/insp: call endburst AFTER the server object is initialized...
...
derp
2015-07-14 12:03:22 -07:00
James Lu
59295f921b
relay: part users on DELINK/DESTROY
2015-07-13 23:29:20 -07:00
James Lu
c11dc769cf
pr/insp: allow explicitly specifying ts in mode*
2015-07-13 22:42:33 -07:00
James Lu
a7a5688e69
pr/insp: add sjoinClient(), make auto-endburst optional for spawnServer
2015-07-13 16:06:58 -07:00
James Lu
45cef19eaa
Make plugins global, not per IRC instance
2015-07-12 23:28:34 -07:00
James Lu
d19cabf16c
pr/insp: save irc.max{nick|chan}len correctly as integers
2015-07-12 14:00:52 -07:00
James Lu
c655d975a6
pr/insp: remove isNick check in spawnClient
2015-07-12 14:00:33 -07:00
James Lu
f8a7bc6033
pr/insp: use TS6SIDGenerator in spawnServer if no SID is explicitly given
2015-07-11 20:21:10 -07:00
James Lu
eae0aa5aa8
pr/insp: Add missing killServer/killClient functions
2015-07-09 19:05:37 -07:00
James Lu
08a187aee6
pr/insp: add updateClient() and FIDENT/FHOST/FNAME handlers
...
updateClient: Changes the <field> field of <target> PyLink PseudoClient <client numeric>.
2015-07-09 17:04:24 -07:00
James Lu
96c3ea2d82
pr/insp: add topic/invite/knockClient commands
...
Closes #34 .
2015-07-09 16:32:29 -07:00
James Lu
c8f12f2ab1
move messaging functions to protocol ( #35 )
...
Closes #36 .
2015-07-09 16:23:20 -07:00
James Lu
f01269287e
pr/insp: remove checks for valid nick/channel; they're done in plugins now
2015-07-08 23:00:50 -07:00
James Lu
20772e5429
inspircd.nickClient: allow nick 0 to equal the target user's UID
2015-07-08 21:17:34 -07:00
James Lu
049b7f5049
pr/insp: add modeServer, modeClient commands
...
Closes #32 .
2015-07-08 18:23:32 -07:00
James Lu
cbfabb2ba1
pr/insp: add OPERTYPE command handler
...
This is sent by InspIRCd for oper ups; there is no MODE command for it.
2015-07-08 18:03:08 -07:00
James Lu
b92a9ce950
pr/insp: fix handle_mode setting modes on the wrong client
2015-07-08 15:10:09 -07:00
James Lu
8576778ddc
Make the 'bot' conf block available in Irc() as irc.botdata
...
Protocol modules shouldn't read conf directly, so that we can override the config in testing.
2015-07-08 13:56:17 -07:00
James Lu
2d4d8dd247
tests and stuff
2015-07-08 13:35:20 -07:00
James Lu
85e6a1aea2
pr/insp: more tests for hooks, etc
2015-07-07 20:59:35 -07:00
James Lu
a177a58ae7
pr/insp: fix some bugs in spawnClient
2015-07-07 17:46:56 -07:00
James Lu
7fb60c1ffa
pr/inspircd: finish off handlers (add KNOCK, INVITE, NOTICE)
...
Closes #18 .
Closes #31 .
2015-07-07 15:31:12 -07:00
James Lu
098b29ae2d
Correction: it is legal for a server name to end with '.', but it can't start with it
2015-07-07 14:31:47 -07:00
James Lu
cfc840ebb3
Actually implement 'nick', 'ident', and 'loglevel' config options
2015-07-07 12:14:55 -07:00
James Lu
7f6c8b0e52
pr/inspircd: enforce minimum protocol version of 1202
...
We're using InspIRCd 2.0+ specific features (SAVE, CAPAB CHAN/USERMODES), so this is required.
Source: https://wiki.inspircd.org/List_of_protocol_changes_between_versions#Version_1202
2015-07-07 10:55:14 -07:00
James Lu
4cc7781f0d
pr/insp: send oldnick in handle_nick hook
...
Since hooks are only called after processing is done by the protocol module, plugins would have no way of knowing what the old nick of the user was.
2015-07-06 19:44:55 -07:00
James Lu
d833be5f4b
pr/insp: smarter spawnClient() with kwargs; implement conf['bot']['prefix']
...
Red #26 .
2015-07-06 19:42:09 -07:00
James Lu
33d23893f8
pr/inspircd: update channel TS when receiving remote FJOIN with lower TS
2015-07-06 19:00:20 -07:00
James Lu
8bed47e7bb
pr/inspircd: handlers for FTOPIC and TOPIC (ref #31 ); make handle_nick return 'newnick' instead of 'target' as arg
2015-07-06 15:33:23 -07:00
James Lu
74339d1038
Fix joinModes, and use it in protocol/inspircd's joinClient
...
In short, PyLink should be sending FJOINs to channels with the modes that it already has (or what we believe it has). This prevents clearing mode lists when PyLink's channel TS is slightly earlier than the IRCd's.
2015-07-06 12:28:10 -07:00
James Lu
f1e26b6c55
Fix tests for FakeIRC and update comment style
2015-07-05 22:59:55 -07:00
James Lu
211decd2aa
everything: Improve logging
2015-07-05 13:44:48 -07:00
James Lu
54dff7a15a
Convert print() calls to log calls, Round 1
2015-07-05 13:29:18 -07:00
James Lu
f06bcc7928
Merge commit 'bd755e137ffa034007a77d75fbd00d21e759163e' into wip/logger-module
...
Conflicts:
proto.py
2015-07-05 13:22:17 -07:00