From bb4a9fd5af2853bb2faf628d0c7dd64f53b474b9 Mon Sep 17 00:00:00 2001
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Wed, 22 Jan 2014 19:44:27 +0100
Subject: [PATCH] Fix race condition in dnsmasq config dir handling

---
 package/gluon-core/files/etc/init.d/gluon-core            | 8 ++++++++
 .../files/lib/gluon/upgrade/core/invariant/010-dnsmasq.d  | 2 +-
 .../files/lib/gluon/dnsmasq.d/010-mesh-batman-adv.conf    | 1 -
 .../generate/lib/gluon/odhcp6c.d/010-mesh-batman-adv      | 4 ++--
 4 files changed, 11 insertions(+), 4 deletions(-)
 create mode 100755 package/gluon-core/files/etc/init.d/gluon-core
 delete mode 120000 package/gluon-mesh-batman-adv/files/lib/gluon/dnsmasq.d/010-mesh-batman-adv.conf

diff --git a/package/gluon-core/files/etc/init.d/gluon-core b/package/gluon-core/files/etc/init.d/gluon-core
new file mode 100755
index 000000000..4c69a5fa5
--- /dev/null
+++ b/package/gluon-core/files/etc/init.d/gluon-core
@@ -0,0 +1,8 @@
+#!/bin/sh /etc/rc.common
+
+START=11
+
+
+start() {
+	mkdir -p /var/gluon/dnsmasq.d
+}
diff --git a/package/gluon-core/files/lib/gluon/upgrade/core/invariant/010-dnsmasq.d b/package/gluon-core/files/lib/gluon/upgrade/core/invariant/010-dnsmasq.d
index 8e84c1f50..ad7f1e2aa 100755
--- a/package/gluon-core/files/lib/gluon/upgrade/core/invariant/010-dnsmasq.d
+++ b/package/gluon-core/files/lib/gluon/upgrade/core/invariant/010-dnsmasq.d
@@ -1,3 +1,3 @@
 #!/bin/sh
 
-echo 'conf-dir=/lib/gluon/dnsmasq.d' > /etc/dnsmasq.conf
+echo -e 'conf-dir=/lib/gluon/dnsmasq.d\nconf-dir=/var/gluon/dnsmasq.d' > /etc/dnsmasq.conf
diff --git a/package/gluon-mesh-batman-adv/files/lib/gluon/dnsmasq.d/010-mesh-batman-adv.conf b/package/gluon-mesh-batman-adv/files/lib/gluon/dnsmasq.d/010-mesh-batman-adv.conf
deleted file mode 120000
index f4b89cbee..000000000
--- a/package/gluon-mesh-batman-adv/files/lib/gluon/dnsmasq.d/010-mesh-batman-adv.conf
+++ /dev/null
@@ -1 +0,0 @@
-/var/gluon/mesh-batman-adv/dnsmasq.conf
\ No newline at end of file
diff --git a/package/gluon-mesh-batman-adv/generate/lib/gluon/odhcp6c.d/010-mesh-batman-adv b/package/gluon-mesh-batman-adv/generate/lib/gluon/odhcp6c.d/010-mesh-batman-adv
index 5f7025229..e06837ede 100755
--- a/package/gluon-mesh-batman-adv/generate/lib/gluon/odhcp6c.d/010-mesh-batman-adv
+++ b/package/gluon-mesh-batman-adv/generate/lib/gluon/odhcp6c.d/010-mesh-batman-adv
@@ -10,12 +10,12 @@ for ns in $RDNSS $RA_DNS; do
 	done
 done > /var/gluon/mesh-batman-adv/dnsmasq.conf.$$
 
-if cmp -s /var/gluon/mesh-batman-adv/dnsmasq.conf.$$ /var/gluon/mesh-batman-adv/dnsmasq.conf; then
+if cmp -s /var/gluon/mesh-batman-adv/dnsmasq.conf.$$ /var/gluon/dnsmasq.d/mesh-batman-adv.conf; then
 	rm /var/gluon/mesh-batman-adv/dnsmasq.conf.$$
 	exit 0
 fi
 
 lock /var/gluon/mesh-batman-adv/dnsmasq.conf.lock
-mv -f /var/gluon/mesh-batman-adv/dnsmasq.conf.$$ /var/gluon/mesh-batman-adv/dnsmasq.conf
+mv -f /var/gluon/mesh-batman-adv/dnsmasq.conf.$$ /var/gluon/dnsmasq.d/mesh-batman-adv.conf
 /etc/init.d/dnsmasq restart
 lock -u /var/gluon/mesh-batman-adv/dnsmasq.conf.lock
-- 
GitLab