James Lu
5e92aefcd4
Implement priorities in utils.add_hook()
...
This changes world.hooks to store lists of tuples indicating (priority, hook_func).
2017-09-02 21:17:50 -07:00
James Lu
82a7b914b6
Move control.tried_shutdown to world.shutting_down
2017-08-31 13:36:50 -07:00
James Lu
94e05a6233
services_support: fix clientbot service spawning when irc.pseudoclient exists but isn't in the user index
2017-08-30 19:50:25 -07:00
James Lu
cad55097f1
core: reuse existing service client UIDs for all service bots
...
This prevents nick collision wars caused by spawn_service when an ENDBURST hook for the uplink is received multiple times.
2017-08-30 19:29:46 -07:00
James Lu
d79f1766b6
classes, coremods: migrate to irc.is_*
2017-08-28 20:13:25 -07:00
James Lu
ba649fb8b4
utils, exttargets: add checks for channel presence
2017-08-25 02:31:26 -07:00
James Lu
0bb4a35c6f
Support pre-auth irc.pseudoclient enumeration & configurable altnicks
...
Closes #516 . Closes #288 .
2017-08-21 23:05:56 -07:00
James Lu
89699051d5
Services API rework
...
- Move nick/ident/host/gecos fetching from services_support into functions
- Remove the unused 'ident' argument from ServiceBot
- Rename the 'nick' argument in ServiceBot to 'default_nick'
- Define default nicks for the PyLink, Automode, and Games services
2017-08-21 21:51:45 -07:00
James Lu
d818c17072
control: don't spew "Stopping plugins" notices if none are loaded
2017-08-16 12:17:19 -07:00
James Lu
3b6c1e56c4
launcher: move reset_permissions() call into the permissions module
2017-08-16 11:21:06 -07:00
James Lu
f439267129
Allow limiting login blocks to opers & certain hosts
...
Closes #502 .
2017-08-07 21:44:15 -07:00
James Lu
14bebd98e7
control: fix import loop with pylinkirc.classes
2017-08-07 17:06:56 -07:00
James Lu
dd1444dcd9
corecommands: block 'identify' from being used by command proxies such as networks.remote
...
This would have pretty bad unintentional consequences...
2017-08-07 16:31:28 -07:00
James Lu
8059f3f7fc
Allow specifying login blocks that are local to certain networks
2017-08-07 16:16:17 -07:00
James Lu
21a39de0b4
corecommands: alias 'identify' to 'login' and 'id'
2017-08-07 16:15:54 -07:00
James Lu
2ff0007e56
exttargets: add $realname target
2017-08-06 21:41:44 -07:00
James Lu
4379ef68ef
Migrate coremods.permissions to snake case
2017-08-02 22:24:23 +08:00
James Lu
f15f27168a
services_support: log the reason as well when a service bot is killed
2017-08-02 22:15:19 +08:00
James Lu
3eb2c6bbf7
service_support: raise KILLs to service bots to INFO
2017-07-30 00:32:59 +08:00
James Lu
91659ea992
core: Properly track whether we should actually remove the PID file
...
Previously, PyLink spuriously removed PID files even if -n/--no-check-pid was set or if PID file checking caused PyLink to quit
2017-07-20 21:13:01 +08:00
James Lu
5a5a98c4ef
services_support: migrate to conf.conf['pylink'], make the realname option optional
2017-07-14 05:51:40 -07:00
James Lu
a164924ce5
Merge branch 'conf-host' of https://github.com/cooper/PyLink into devel
2017-07-14 05:38:45 -07:00
James Lu
2e7fed84c1
IRCNetwork: mark connection_thread, pingTimer, socket, and queue as private
2017-07-12 22:56:30 -07:00
James Lu
3cc6ea1e88
corecommands: remove duplicate error logging when REHASH fails
2017-07-12 22:44:51 -07:00
James Lu
d57e141fbc
control: log the name of the PID file on shutdown
2017-07-12 22:22:08 -07:00
James Lu
61db5d616d
corecommands: use irc.get_hostmask instead of formatting the caller's hostname manually
2017-07-12 22:22:08 -07:00
James Lu
bb2b57f9dd
control: mark signal handlers as private
2017-07-12 22:22:08 -07:00
James Lu
74f68c2176
control: mark rehash and shutdown as public
2017-07-12 22:22:08 -07:00
James Lu
22e6992770
core: consistently call die() with irc as a keyword argument
2017-07-12 22:22:08 -07:00
Mitchell Cooper
a1dfa14d20
allow realname to be specified the same way
2017-07-12 18:53:02 -04:00
Mitchell Cooper
33630e8f9d
allow host to be specified in service bot block or per-network
2017-07-12 18:38:26 -04:00
James Lu
0e4737e59d
handlers: strip away '(on $network)' portions of relay oper types if the source and target netname are the same
2017-07-12 07:57:07 -07:00
James Lu
9a2bff25ee
control: migrate to new log_setup() name
2017-07-12 07:50:34 -07:00
James Lu
50e7b0ab13
Limit signon time in WHOIS replies to service bot targets
...
Faking signon time for relay clients, etc. is misleading...
2017-07-12 07:49:19 -07:00
James Lu
556c2efb0a
Make showing startup time an option (whois_show_startup_time)
2017-07-12 07:44:18 -07:00
James Lu
adaa6021f9
handlers: use conf.conf['pylink']
2017-07-12 07:35:51 -07:00
James Lu
6a0859f56a
handlers: send PyLink's connect time via 317 (RPL_WHOISIDLE)
2017-07-12 07:32:50 -07:00
James Lu
7c5f1533a0
handlers: fix weirdly named variables
2017-07-12 07:32:40 -07:00
James Lu
883f9199ec
control: move rehash signal to SIGUSR1, and shutdown on SIGHUP (terminal close)
...
PyLink technically isn't a daemon, so it's a bit odd to have it linger around after the controlling terminal has died.
2017-07-02 21:19:04 -07:00
James Lu
a204d2b2db
core: convert IrcUser calls to User
2017-06-30 21:44:31 -07:00
James Lu
7d68c03101
various: convert sortPrefixes/getPrefixModes calls to snake case
2017-06-30 21:40:05 -07:00
James Lu
61ed209abb
coremods, plugins: migrate to snake case for protocol communication
2017-06-30 21:30:20 -07:00
James Lu
ea455436c1
control: fix REHASH for 2.x protocol modules
2017-06-30 00:41:29 -07:00
James Lu
10bca676fc
coremods, plugins: migrate to snake case
2017-06-29 23:01:39 -07:00
James Lu
748c1bc158
coremods: migrate irc.proto calls to irc
2017-06-25 02:09:55 -07:00
James Lu
f80c5df971
control: log the start and end of rehash to INFO
2017-06-02 08:46:27 -07:00
James Lu
60a0bcdc7a
Rename config option log:stdout -> log:console
...
Closes #386 .
2017-06-02 08:42:32 -07:00
James Lu
6e8f618f80
control: don't duplicate config validation
2017-06-02 08:34:59 -07:00
James Lu
04f88df385
Actually use 'irc' in main() and die() as a keyword argument (per docs)
2017-05-12 19:19:52 -07:00
James Lu
998beb51b5
control: move plugin shutdown & pidfile cleanup routines to atexit
...
It is possible for PyLink to shutdown indirectly by disconnecting all networks. In these cases, the shutdown routines never ran at all...
2017-05-12 19:13:02 -07:00