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
James Lu
7e51d3a7f5
service_support: fix service respawn on KILL
2017-05-12 18:45:27 -07:00
James Lu
457325024a
service_support: reuse existing internal clients for service bots if one exists
...
Potential fix for #458 .
2017-05-12 18:27:54 -07:00
James Lu
59dd8d3bf8
control: print remaining threads on forced shutdowns as well
2017-05-07 13:39:46 -07:00
James Lu
1358fedca6
exttargets: add $and exttarget ( #334 )
2017-05-04 18:00:32 -07:00
James Lu
dbeacf9249
exttargets: add a $network target ( #334 )
2017-05-04 17:16:50 -07:00
James Lu
348572bcb6
Irc: rewrite sendq to use queue.Queue, and add an upper bound (maxsendq)
...
Closes #430 . Closes #442 .
2017-03-31 17:41:56 -07:00
James Lu
40fa4f71bc
corecommands: add a 'clearqueue' command to force clear queue muckups ( #441 )
2017-03-28 22:39:11 -07:00
James Lu
55873416a1
control: raise KeyboardInterrupt to speed up forced shutdowns?
2017-03-26 14:44:04 -07:00
James Lu
f497044777
corecommands: use utils.PLUGIN_PREFIX in 'unload'
2017-03-25 14:08:37 -07:00
James Lu
feb9cce4ee
core: Drop fake ServiceBot client stubs on Clientbot ( #403 )
2017-03-23 23:53:43 -07:00
James Lu
c67c0aa2e6
rehash: fix resetting the wrong autoconnect multiplier variable
2017-03-11 01:05:07 -08:00
James Lu
2028cab04c
core: Grow autoconnect delays by a configurable factor whenever connections fail
...
Closes #348 .
2017-03-11 00:21:30 -08:00
James Lu
0526e96dc5
control: remove an extraneous, obsolete comment
2017-03-10 23:57:37 -08:00
James Lu
fb626c8a97
services_support: remove workarounds for the PyLink service nick & ident being in conf::bot ( #343 )
2017-03-10 23:47:07 -08:00
James Lu
b23a887edd
login: remove all__vary_rounds setting (deprecated in Passlib 1.7)
2017-03-08 22:58:17 -08:00
James Lu
f6d9765f87
core: implement module loading from user-defined directories
...
Closes #350 .
2017-03-08 22:31:57 -08:00
James Lu
e8bf1d08bc
handlers, fantasy: migrate away from irc.botdata ( #273 )
2017-03-05 00:10:33 -08:00
James Lu
8a773dea4e
core: normalize exit codes
2017-02-27 07:26:29 -08:00
James Lu
ae56ed6a32
services_support: fix service-specific key name
2017-02-26 18:11:20 -08:00
Ken Spencer
b3ec8a6790
service_support: allow server:service_channels for per service autojoin
2017-02-26 21:05:33 -05:00
James Lu
fe3fa2872d
corecommands: remove extraneous irc.checkAuthenticated() call
2017-02-24 17:49:54 -08:00
James Lu
a9d2a2c4bc
relay, handlers: rewrite oper WHOIS replies to show the target's home network
2017-02-18 13:51:45 -08:00
James Lu
a3f122fee4
control: try a more stable force-shutdown routine
2017-02-18 12:19:53 -08:00
James Lu
d6a6d069bc
Move 'mkpasswd' to the commands plugin
2017-01-22 16:42:46 -08:00
James Lu
fd12a5d919
core: make passlib an optional dependency
2017-01-22 16:42:46 -08:00
James Lu
b2286157ef
core: update stdout log level on REHASH
2017-01-07 00:12:35 -08:00
James Lu
e7a005b685
control: log remaining threads on shutdown, for debugging freezes
2016-12-16 19:42:12 -08:00
James Lu
7b5fcc3219
corecommands: use irc.error() in login fail wrapper
2016-12-16 19:06:33 -08:00
James Lu
5a066bfde4
corecommands: port to use the permissions API ( #367 )
2016-12-09 21:43:58 -08:00
James Lu
57aa844fcb
permissions: limit "login = admin access" to old-style (< 1.1) login blocks
2016-12-09 20:57:01 -08:00
James Lu
e7e2f2c98e
core: update "missing dependencies" errors
...
Closes #363 .
2016-12-09 17:15:53 -08:00
James Lu
b3387f2d41
conf: fix deprecation warnings crashing because log is unavailable
...
This allows conf methods to access to global logger by via an optional 'logger' argument. However,
the caveat is that the logging facilities are still unavailable on first start, because log can
only be imported *after* the configuration is loaded.
2016-12-05 22:43:01 -08:00
James Lu
ffc271a53a
login: Use a slightly faster CryptContext
2016-11-19 17:47:55 -08:00
James Lu
b1e4b34b79
Switch 'identify' to use the new login backend, add passlib to README dependencies
...
This new backend supports optional encryption (sha256_crypt / sha512_crypt via passlib). Closes #322 .
2016-11-19 17:21:45 -08:00
James Lu
69066029f1
Simplify/rewrite the login module
2016-11-19 17:01:05 -08:00
James Lu
3308db0cd2
Import coremods/login.py (abstracted login checking) from @IotaSpencer's repo
2016-11-19 17:01:00 -08:00
James Lu
377df413ed
Irc: s/isServiceBot/getServiceBot/g ( #355 )
...
This function is renamed to better reflect its return value (ServiceBot object instead of boolean True).
2016-11-09 19:09:59 -08:00
James Lu
08fa64c3cc
Irc, services_support: store service name in IrcUser objects ( #355 )
2016-11-09 19:07:01 -08:00
James Lu
93ca62aa49
Revamp configuration to support multiple accounts ( #319 )
2016-11-07 21:01:28 -08:00
James Lu
b750bd4d15
coremods/control: ignore errors when removing PID file
2016-10-15 14:31:13 -07:00
Ken Spencer
bc4be815e4
coremods: make _shutdown remove running 'config'.pid
2016-10-15 16:50:25 -04:00
James Lu
438838f81d
ServiceBot: handle autojoin additions even if bots haven't spawned yet
2016-09-24 12:33:57 -07:00
James Lu
1c60ad7251
services_support: honour joinmodes settings on kick-rejoin
2016-09-24 12:22:12 -07:00
James Lu
a040c3c7d2
ServiceBot: modularize join() for explicit channel joining ( #326 )
2016-09-23 23:43:07 -07:00
James Lu
0cce6ca488
service_support: allow specifying modes to join with for each service ( #326 )
...
This updates the example config to, by default, join Automode bots as op in channels.
2016-09-23 23:10:38 -07:00
James Lu
a12ed6ad35
services_support: hack around nick clashes between service clients & real users in Clientbot
...
For #327 . Essentially what this does is tack on a nick prefix to all service bots introduced on a Clientbot network, using characters invalid for regular nicks.
2016-09-06 20:04:19 -07:00
James Lu
d1e2dfcf61
clientbot: only call spawnClient for new message sources after irc.pseudoclient is set
2016-09-01 13:08:20 -07:00
James Lu
e903a8226a
permissions: move admin login clause into checkPermissions()
...
This is more persistent.
2016-08-31 13:32:42 -07:00
James Lu
556b388a4e
core: Rehashable permissions; import coremods on start
2016-08-25 12:07:55 -07:00
James Lu
6af8e77ee1
permissions: apply add/removeDefaultPermissions on the right list
2016-08-25 12:07:36 -07:00
James Lu
f890ddac1b
permissions, automode: work on default permissions & add example permissions config ( #190 )
...
- Fix possible type errors in add/removeDefaultPermissions by converting permlist values to sets.
- Fix wrong permission string being checked in automode.<command>.#channel
- automode: register and unregister default permissions on load/unload.
- permissions: add an 'also_show' argument to checkPermissions(), to display alternative permissions that weren't directly checked.
2016-08-25 11:45:57 -07:00
James Lu
b4b772354c
permissions: fix inverted permissions list lookup
2016-08-25 00:58:19 -07:00
James Lu
91e39b7df9
WIP Permissions API ( #190 )
2016-08-25 00:45:05 -07:00
James Lu
126a07bdf6
core: rehashable file loggers with log rotation support
...
Closes #176 . Closes #315 .
2016-08-17 21:42:18 -07:00
James Lu
94aee8f05c
Implement /TIME support ( #228 )
2016-08-12 19:19:09 -07:00
James Lu
a76bd8c5b2
core: make hostmask fetching a shared function
2016-08-12 19:18:56 -07:00
James Lu
e50684e367
Merge branch 'master' into devel
2016-08-04 10:29:17 -07:00
James Lu
a9fe0499e6
services_support: ignore invalid autojoin channels
...
Reported by @rvzm on IRC.
Closes #308 .
2016-08-04 10:26:00 -07:00
James Lu
c9ce4d1507
Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
...
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").
(cherry picked from commit 4b27ebbee4
)
2016-08-01 17:59:31 -07:00
James Lu
4b27ebbee4
Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
...
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").
2016-07-31 21:45:38 -07:00
James Lu
1ef89560e2
core: rename IrcUser.identified attribute to IrcUser.account
2016-07-29 20:16:05 -07:00
James Lu
f4922743fc
core: SID and hostname options are now optional ( #282 )
...
Hostname defaults to a fallback hardcoded in world.fallback_hostname, while SID defaults to None (protocol modules have to deal with this themselves)
2016-07-28 22:23:59 -07:00
James Lu
8047186c58
plugins, coremods: remove usage of irc.conf ( #273 )
2016-07-27 17:02:04 -07:00
James Lu
0d563eaa57
control/utils: unload the PyLink service bot on shutdown
2016-07-26 16:26:01 -07:00
James Lu
a4dbd8d09f
control: handle SIGINT for clean shutdown on ctrl-c
...
Closes #280 .
2016-07-26 16:16:23 -07:00
James Lu
c8ec2d9600
handlers: remove obsolete comment about WHOIS
2016-07-24 13:48:03 -07:00
James Lu
e342889937
corecommands: really fix 'reload'
...
(cherry picked from commit 150bfe8c66
)
2016-07-23 22:02:08 -07:00
James Lu
f51a882d23
exttargets: verify target is in channel before calling getPrefixModes
2016-07-17 10:49:42 -07:00
James Lu
b79f391be6
corecommands: fix no-identify-in-channel logic
2016-07-13 19:32:39 -07:00