Module: deluge Branch: master Commit: e552c21f668114721390c4628a3db7563fb161de
Author: Pedro Algarvio <[email protected]> Date: Mon Apr 25 14:43:44 2011 +0100 Automatically detect auth file changes and reloading those changes. --- deluge/core/authmanager.py | 22 +++++++++++++++++++++- 1 files changed, 21 insertions(+), 1 deletions(-) diff --git a/deluge/core/authmanager.py b/deluge/core/authmanager.py index 0d45a8f..6518c8a 100644 --- a/deluge/core/authmanager.py +++ b/deluge/core/authmanager.py @@ -87,7 +87,7 @@ class Account(object): class AuthManager(component.Component): def __init__(self): - component.Component.__init__(self, "AuthManager") + component.Component.__init__(self, "AuthManager", interval=10) self.__auth = {} self.__auth_modification_time = None @@ -100,6 +100,26 @@ class AuthManager(component.Component): def shutdown(self): pass + def update(self): + log.debug("Querying for changed auth file") + auth_file = configmanager.get_config_dir("auth") + # Check for auth file and create if necessary + if not os.path.exists(auth_file): + log.info("Authfile not found, recreating it.") + self.__create_auth_file() + self.__create_localclient_account() + self.write_auth_file() + + auth_file_modification_time = os.stat(auth_file).st_mtime + if self.__auth_modification_time is None: + self.__auth_modification_time = auth_file_modification_time + elif self.__auth_modification_time == auth_file_modification_time: + # File didn't change, no need for re-parsing's + return + + log.info("auth file changed, reloading it!") + self.__load_auth_file() + def authorize(self, username, password): """ Authorizes users based on username and password -- You received this message because you are subscribed to the Google Groups "deluge-commit" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/deluge-commit?hl=en.
