3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-01 17:29:21 +01:00
Commit Graph

3308 Commits

Author SHA1 Message Date
James Lu
3c9dac7e6b service_support: consistently rejoin all channels on kick and kill
This is the cheap fix to part one of #265: "When a services client is killed, it won't join any relay leaf channels"
2018-04-13 20:34:26 -07:00
James Lu
4cdc19ac78 relay: fix is_internal_client call 2018-04-13 20:31:56 -07:00
James Lu
2f12a5b710 Initial work on dynamic service bot joining / parting (#265) 2018-04-12 12:45:33 -07:00
James Lu
2cb4a06e64 commands: report times in showuser, showchan in UTC
XXX: we could perhaps use abstraction to this since we're repetitively chaining commands
XXX: 'ts' is not type-safe yet, some protocol modules are storing it as a string?!
2018-04-12 10:58:09 -07:00
James Lu
25d24e9bb2 Use non-blocking sockets again, since Linux select() doesn't guarantee that recv() won't block 2018-04-12 10:58:09 -07:00
James Lu
bbc7a981ba example-conf: tweak some more defaults for clarity
(cherry picked from commit 66ec3d9755)

Conflicts:
	example-conf.yml
2018-04-10 22:31:24 -07:00
James Lu
c82b12d9d6 example-conf: clarify nick/ident setting on clientbot
(cherry picked from commit 170d793939)
2018-04-10 22:29:43 -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
16faac83eb core: delete empty permanent channels when -P is set on them 2018-04-07 22:38:19 -07:00
James Lu
6bcf7d325f PyLinkNetworkCore: add get_service_option()
Closes #574.
2018-04-07 22:20:35 -07:00
James Lu
138a52611e classes: oops, actually tell the queue thread to abort before we wait for it to stop 2018-04-07 22:12:17 -07:00
James Lu
80cbd7a257 classes: make disconnections more synchronized
- Make ping timer abort instantly if the network is dead
- Shut down the read and write parts of the socket separately, and only close the socket once both parts are done.
2018-04-07 21:56:10 -07:00
James Lu
84dbca4bda classes: thread socket connects once more since they block 2018-04-07 21:56:06 -07:00
James Lu
655221491c ServiceBot: log access denials to warning - closes #593 2018-04-07 20:22:55 -07:00
James Lu
f75b1eb356 Rename servers::<netname>::server_suffix -> servers::<netname>::relay_server_suffix 2018-04-03 17:43:02 -07:00
James Lu
7586989763 classes: really quash duplicate disconnect calls as much as possible 2018-03-31 11:53:50 -07:00
James Lu
d6952f0361 handlers: fix names of state cleanup function
Where did "stats cleanup" even come from?!
2018-03-31 00:09:30 -07:00
James Lu
57d7a70933 launcher: mention that -c is explicitly kept as a no-op for PyLink <= 1.2.x
(cherry picked from commit c0a061eff3)

Conflicts:
	launcher.py
2018-03-30 23:52:19 -07:00
James Lu
7dec2d15db launcher: daemonize and write PID file only after reading control options (-s/-R/-r)
(cherry picked from commit b9a66244f0)
2018-03-30 23:24:41 -07:00
James Lu
9d21a5269f relay: speed up shutdowns by not manually splitting off every relay server
The connection will soon be gone anyways, so this is fairly pointless.
2018-03-30 12:06:45 -07:00
James Lu
c978e1c52f relay: fix a typo: CLIENTBOT_WHITELISTED_UMODES -> CLIENTBOT_WHITELISTED_CMODES 2018-03-30 12:01:38 -07:00
James Lu
310ad345a3 SECURITY: normalize account names before checking network / oper filters
(cherry picked from commit a6c1beaad0)
2018-03-30 11:59:29 -07:00
James Lu
22efe1384c _login: tweak error message: opered up => opered
(cherry picked from commit 557f1578bc)

Conflicts:
	coremods/corecommands.py
2018-03-30 11:58:50 -07:00
James Lu
f274088ea0 classes: more checks on _aborted to (hopefully) prevent duplicate disconnects triggered by _send 2018-03-30 10:47:34 -07:00
James Lu
93d590fdea UserMapping: check for lower_nick rather than isinstance(userobj, User)
This makes classes reload-safe again.
2018-03-30 10:46:49 -07:00
Jordy Zomer
be8e4be49d Use yaml.safe_load instead of yaml.load to prevent executing arbitrary code (#589) 2018-03-29 14:10:33 -07:00
James Lu
335fb352ec classes: ignore errors on duplicate selector.unregister()
This should really be fixed more thoroughly: there are still some remaining issues after the port to select, with disconnect / reconnect being triggered twice.
2018-03-29 14:04:58 -07:00
James Lu
29cda543e4 launcher: use a clearer description for --trace 2018-03-24 01:07:24 -07:00
James Lu
22b2410913 RELNOTES: mention new --trace arguments for 2.0-alpha3 2018-03-24 01:05:47 -07:00
James Lu
22f781189d Refresh 2.0-alpha3 changelog with engine-rework batch 2 changes so far 2018-03-24 01:02:55 -07:00
James Lu
84187a07ec Refresh 2.0-alpha3 changelog (up to 815535d76b) 2018-03-24 01:02:14 -07:00
James Lu
0bc24c94b2 relay: shortcut get_remote_user some more; only grab spawn lock if the user doesn't exist 2018-03-24 00:31:15 -07:00
James Lu
bbb36cd956 relay: reuse get_relay_server_sid output when bursting groups of users 2018-03-24 00:25:05 -07:00
James Lu
a085aed924 Rework irc.users and User() to transparently create a store of nicks -> UIDs
- This turns IRCNetwork.users into a new UserMapping class, which stores User objects by UID (str) and provides a 'bynick' dict storing case-normalized nicks to lists of UIDs.
- Turn User.nick into a property, where the setter implicitly updates the 'bynick' index and computes a case-normalized version of the nick (User.lower_nick)
2018-03-24 00:12:19 -07:00
James Lu
815535d76b IRCNetwork: fix autoconnect not applying when socket.connect() fails 2018-03-23 20:21:49 -07:00
James Lu
814dd9a3c5 IRCNetwork: only register a socket with selectdriver after connecting 2018-03-23 20:16:59 -07:00
James Lu
ec8f744449 relay: only look up nick once in normalize_nick 2018-03-22 22:45:40 -07:00
James Lu
bb1334696c classes: cache more of to_lower() 2018-03-22 22:03:08 -07:00
James Lu
c11a476257 Revert "selectdriver: actually, force a disconnect when _run_irc() fails"
This reverts commit f10f5bee52.
2018-03-22 21:21:33 -07:00
James Lu
b522967760 Fix duplicate calls to _run_autoconnect 2018-03-22 17:42:28 -07:00
James Lu
f10f5bee52 selectdriver: actually, force a disconnect when _run_irc() fails 2018-03-21 21:07:44 -07:00
James Lu
989259af97 selectdriver: don't crash if _run_irc hits an error 2018-03-21 20:14:27 -07:00
James Lu
5172841378 launcher: add support for tracing (most of) PyLink's execution 2018-03-17 16:13:35 -07:00
James Lu
91b86ce0e4 Remove structures.DeprecatedAttributesObject, it's vastly inefficient for what it accomplishes 2018-03-17 15:49:48 -07:00
James Lu
fb6c3bf6d5 selectdriver: don't try to deregister dead sockets 2018-03-17 15:33:39 -07:00
James Lu
ab70d7c8fb selectdriver: stop delivering events when _aborted is set 2018-03-17 15:27:35 -07:00
James Lu
8100a4cea6 IRCNetwork: run _run_autoconnect in a thread so it doesn't block whatever calls disconnect() 2018-03-17 15:26:36 -07:00
James Lu
30bcd8ca79 control: remove check for _connection_thread (removed in select rework) 2018-03-17 12:18:34 -07:00
James Lu
0151f77f7b Don't clear the read buffer with every _run_irc call 2018-03-17 12:18:16 -07:00
James Lu
10d2fb93ed classes: fix syntaxerror from merge 2018-03-17 11:06:02 -07:00