]> git.ipfire.org Git - people/arne_f/ipfire-2.x.git/commitdiff
ddns: Update to version 008
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 16 Jul 2015 10:01:40 +0000 (12:01 +0200)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 16 Jul 2015 10:02:08 +0000 (12:02 +0200)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
config/rootfiles/core/93/filelists/ddns [new symlink]
lfs/ddns
src/patches/ddns/001-ddns-007-perform-lazy-database-init.patch [deleted file]
src/patches/ddns/002-ddns-007-also-open-database-for-search-operations.patch [deleted file]

diff --git a/config/rootfiles/core/93/filelists/ddns b/config/rootfiles/core/93/filelists/ddns
new file mode 120000 (symlink)
index 0000000..7395164
--- /dev/null
@@ -0,0 +1 @@
+../../../common/ddns
\ No newline at end of file
index 463ae28a9d2e86ac985112059cc88d4934966ce4..b692d9aa7afe70d8350230ea5e664e0f2c540ba2 100644 (file)
--- a/lfs/ddns
+++ b/lfs/ddns
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 007
+VER        = 008
 
 THISAPP    = ddns-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 44f63cecc36db0d9ffddfa4bca7983ae
+$(DL_FILE)_MD5 = f8b9441f18c2667d440d5416ec2e0011
 
 install : $(TARGET)
 
@@ -71,9 +71,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ddns/001-ddns-007-perform-lazy-database-init.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/ddns/002-ddns-007-also-open-database-for-search-operations.patch
-
        cd $(DIR_APP) && [ -x "configure" ] || sh ./autogen.sh
        cd $(DIR_APP) && ./configure \
                --prefix=/usr \
diff --git a/src/patches/ddns/001-ddns-007-perform-lazy-database-init.patch b/src/patches/ddns/001-ddns-007-perform-lazy-database-init.patch
deleted file mode 100644 (file)
index c9b893e..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-commit 63e16feedea3639ef1f21fecbff9ed2ae256728b
-Author: Michael Tremer <michael.tremer@ipfire.org>
-Date:   Sat Apr 25 13:18:07 2015 +0200
-
-    Perform lazy initialization of the database
-    
-    The database will only be initialized when it is actually
-    needed. That makes starting up ddns a bit faster and allows
-    us to execute it as non-root for simple commands like
-    "list-providers".
-    
-    If the database path is not writable at all, the database
-    feature is disable and an error message is logged. This
-    will hopefully help us to perform the DNS update even when
-    there is a local misconfiguration.
-
-diff --git a/src/ddns/database.py b/src/ddns/database.py
-index 5d4ffc9..42c3433 100644
---- a/src/ddns/database.py
-+++ b/src/ddns/database.py
-@@ -20,7 +20,7 @@
- ###############################################################################
- import datetime
--import os.path
-+import os
- import sqlite3
- # Initialize the logger.
-@@ -31,9 +31,11 @@ logger.propagate = 1
- class DDNSDatabase(object):
-       def __init__(self, core, path):
-               self.core = core
-+              self.path = path
--              # Open the database file
--              self._db = self._open_database(path)
-+              # We won't open the connection to the database directly
-+              # so that we do not do it unnecessarily.
-+              self._db = None
-       def __del__(self):
-               self._close_database()
-@@ -46,7 +48,7 @@ class DDNSDatabase(object):
-               conn = sqlite3.connect(path, detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
-               conn.isolation_level = None
--              if not exists:
-+              if not exists and self.is_writable():
-                       logger.debug("Initialising database layout")
-                       c = conn.cursor()
-                       c.executescript("""
-@@ -68,12 +70,25 @@ class DDNSDatabase(object):
-               return conn
-+      def is_writable(self):
-+              # Check if the database file exists and is writable.
-+              ret = os.access(self.path, os.W_OK)
-+              if ret:
-+                      return True
-+
-+              # If not, we check if we are able to write to the directory.
-+              # In that case the database file will be created in _open_database().
-+              return os.access(os.path.dirname(self.path), os.W_OK)
-+
-       def _close_database(self):
-               if self._db:
-                       self._db_close()
-                       self._db = None
-       def _execute(self, query, *parameters):
-+              if self._db is None:
-+                      self._db = self._open_database(self.path)
-+
-               c = self._db.cursor()
-               try:
-                       c.execute(query, parameters)
-@@ -81,6 +96,10 @@ class DDNSDatabase(object):
-                       c.close()
-       def add_update(self, hostname, status, message=None):
-+              if not self.is_writable():
-+                      logger.warning("Could not log any updates because the database is not writable")
-+                      return
-+
-               self._execute("INSERT INTO updates(hostname, status, message, timestamp) \
-                       VALUES(?, ?, ?, ?)", hostname, status, message, datetime.datetime.utcnow())
diff --git a/src/patches/ddns/002-ddns-007-also-open-database-for-search-operations.patch b/src/patches/ddns/002-ddns-007-also-open-database-for-search-operations.patch
deleted file mode 100644 (file)
index 19534f3..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-commit f62fa5baffe2d225604460ecd03b8159b987df8f
-Author: Michael Tremer <michael.tremer@ipfire.org>
-Date:   Sun Apr 26 20:15:33 2015 +0200
-
-    database: Open database for the search operations, too
-
-diff --git a/src/ddns/database.py b/src/ddns/database.py
-index 42c3433..70a7363 100644
---- a/src/ddns/database.py
-+++ b/src/ddns/database.py
-@@ -122,6 +122,9 @@ class DDNSDatabase(object):
-               """
-                       Returns the timestamp of the last update (with the given status code).
-               """
-+              if self._db is None:
-+                      self._db = self._open_database(self.path)
-+
-               c = self._db.cursor()
-               try:
-@@ -141,6 +144,9 @@ class DDNSDatabase(object):
-               """
-                       Returns the update status of the last update.
-               """
-+              if self._db is None:
-+                      self._db = self._open_database(self.path)
-+
-               c = self._db.cursor()
-               try:
-@@ -156,6 +162,9 @@ class DDNSDatabase(object):
-               """
-                       Returns the reason string for the last failed update (if any).
-               """
-+              if self._db is None:
-+                      self._db = self._open_database(self.path)
-+
-               c = self._db.cursor()
-               try: