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

classes: allow hook functions to block further execution by returning False

Closes #547.
This commit is contained in:
James Lu 2018-02-18 22:42:39 -08:00
parent 4a01948647
commit 2e66b9bde6

View File

@ -238,7 +238,13 @@ class PyLinkNetworkCore(structures.DeprecatedAttributesObject, structures.CamelC
try: try:
log.debug('(%s) Calling hook function %s from plugin "%s"', self.name, log.debug('(%s) Calling hook function %s from plugin "%s"', self.name,
hook_func, hook_func.__module__) hook_func, hook_func.__module__)
hook_func(self, numeric, command, parsed_args) retcode = hook_func(self, numeric, command, parsed_args)
if retcode is False:
log.debug('(%s) Stopping hook loop for %r (command=%r)', self.name,
hook_func, command)
break
except Exception: except Exception:
# We don't want plugins to crash our servers... # We don't want plugins to crash our servers...
log.exception('(%s) Unhandled exception caught in hook %r from plugin "%s"', log.exception('(%s) Unhandled exception caught in hook %r from plugin "%s"',