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.

Reply via email to