3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-30 23:09:23 +01:00
Commit Graph

444 Commits

Author SHA1 Message Date
James Lu
6870e041bc relay: catch nicks that start with digits and add tests 2015-07-12 16:59:49 -07:00
James Lu
3edee17802 .gitignore: add *.db 2015-07-12 16:28:33 -07:00
James Lu
b538037e22 relay: add normalizeNick stub 2015-07-12 14:02:17 -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
450584b963 relay: hack in utils.schedulers so that exportDB only gets queued once globally
Previously, exportDB would be queued once by every IRC object, which was the wrong behavior!
2015-07-12 13:09:35 -07:00
James Lu
e073f21417 relay: spawn servers, raise exportDB interval to 60; use main(irc) 2015-07-11 20:21:10 -07:00
James Lu
5d5f556ee3 main: load plugins in a separate loop, and call the main() of loaded plugins if present 2015-07-11 20:21:10 -07:00
James Lu
149921ac47 main: remove incorrect usage of socket.shutdown, and raise socket timeout to something more reasonable 2015-07-11 20:21:10 -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
e250409b46 utils: add a new TS6SIDGenerator() class, for generating SIDs based on ranges 2015-07-11 20:21:10 -07:00
James Lu
8d4a06b60e Initial PyLink-Relay stub, with CREATE and DESTROY commands using a pickle database.
ref #37.
2015-07-10 20:26:46 -07:00
James Lu
11e27b9f36 main.Irc: only load plugins after the IRC object is initialized in utils.networkobjects
PyLink-Relay (#37) needs this in order to fetch the IRC objects of various networks at start.
2015-07-10 20:24:08 -07:00
James Lu
3156d83ec3 plugins/admin: rename quitclient -> quit 2015-07-10 16:43:16 -07:00
James Lu
7a6c32e0c4 utils: add isOper() function 2015-07-10 16:43:16 -07:00
James Lu
1b4ec414cf Fix config format for multinet 2015-07-10 14:17:43 -07:00
James Lu
dba20d4efc Merge pull request #38 from GLolol/multinet-v2
Multinet support
2015-07-10 11:21:28 -07:00
James Lu
eae0aa5aa8 pr/insp: Add missing killServer/killClient functions 2015-07-09 19:05:37 -07:00
James Lu
ffec80ee45 tests/: update for new multi-net config format 2015-07-09 18:42:38 -07:00
James Lu
652d53c29e pr/insp: drop tests for validing channel names 2015-07-09 18:40:32 -07:00
James Lu
eec024bf9a Second attempt at multinet support, by wrapping threading.Thread around Irc.run()
Closes #15.
2015-07-09 18:29:00 -07:00
James Lu
e54e17a0ea Irc.send: safeguard against newlines in input! 2015-07-09 17:25:10 -07:00
James Lu
070bba77cb admin.py: check to see if queried channels exist; sort output fields 2015-07-09 17:05:23 -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
e7922be9fb plugins/commands.py: warn on failed login attempts 2015-07-08 23:21:01 -07:00
James Lu
1c7f2f6a83 utils.applyModes: fix logging output; only remove delete modes with args if new args are different
Previously, you'd get interesting messages where in sequential FJOINs, PyLink would remove param-modes like ('f', '6:5') and then add it right back, thinking that it was a duplicate.
2015-07-08 23:13:23 -07:00
James Lu
b27fcc7f8f utils.applyModes: operate on a copy of the original modelist
This prevents bugs where mode changes are applied to the wrong users (possibly due to the scope not clearing).
2015-07-08 23:11:44 -07:00
James Lu
27bb6af7f6 plugins/admin.py: add 'mode' and 'showchan' commands 2015-07-08 23:01:09 -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
edfcacfdd1 plugins/admin.py: remove -client suffixes from commands, and fix argument checking 2015-07-08 22:50:19 -07:00
James Lu
35f8a0e25f utils.parseModes: be a bit more fault-tolerant
- Log "mode requires an argument but none was found" errors to warning, and skip the mode instead of failing completely.
- Assign a fallback value for 'prefix', checking to make sure it exists and raising ValueError (not UnboundLocalError) when it doesn't.
2015-07-08 22:42:04 -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
7a37f50a1a utils.joinModes: support joining modes with prefixes 2015-07-08 16:58:59 -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
5989f11ec0 pr/insp: tests for SERVER, SAVE, NICK, and INVITE 2015-07-08 13:56:28 -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
0f03a2398b Updates to test_proto_inspircd.py
New tests: testFjoinResetsTS, testHandleTopic, and testHandleFTopic
2015-07-07 18:30:42 -07:00
James Lu
8f75c5363c Move all the FakeIRC stuff to classes.py, update FakeIRC with the ability to get hook data 2015-07-07 18:07:20 -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
087a4e7e5c Drop "prefix" config entry, it's not being used
Closes #26. Plugins can implement their own fantasy-style triggers via message hooks, so I'm not sure this really needs a place in the core.
2015-07-07 12:03:30 -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