cache-domains: Improved ifup hotplug reliability
I've noticed that in deployment on some reboots it won't configure, This seems to be due to running before the system/network is ready. Signed-off-by: Gerard Ryan <G.M0N3Y.2503@gmail.com>
This commit is contained in:
parent
f7dea4561b
commit
af8d806407
3 changed files with 25 additions and 16 deletions
|
@ -1,7 +1,7 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=cache-domains
|
PKG_NAME:=cache-domains
|
||||||
PKG_VERSION:=2.0.0
|
PKG_VERSION:=2.1.0
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
|
PKG_MAINTAINER:=Gerard Ryan <G.M0N3Y.2503@gmail.com>
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
source /lib/functions/network.sh
|
. /lib/functions/network.sh
|
||||||
network_find_wan WAN_IFACE
|
network_find_wan WAN_IFACE
|
||||||
|
|
||||||
if [ "${ACTION}" == "ifup" ] && [ "${INTERFACE}" == "${WAN_IFACE}" ] && [ ! -d /var/cache-domains ]; then
|
if [ "${ACTION}" = "ifup" ] && [ "${INTERFACE}" = "${WAN_IFACE}" ] && [ ! -d /var/cache-domains ]; then
|
||||||
/usr/bin/cache-domains configure
|
for ATTEMPT in $(seq 1 3); do
|
||||||
|
if /usr/bin/cache-domains configure; then
|
||||||
|
break
|
||||||
|
else
|
||||||
|
sleep 30
|
||||||
|
fi
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,39 +1,42 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
CACHE_DOMAINS_DIR="/var/cache-domains"
|
CACHE_DOMAINS_DIR="/var/cache-domains"
|
||||||
CACHE_DOMAINS_SRC="https://api.github.com/repos/uklans/cache-domains/tarball/master"
|
CACHE_DOMAINS_SRC="https://api.github.com/repos/uklans/cache-domains/tarball/master"
|
||||||
CONFIG_FILE="/etc/cache-domains.json"
|
CONFIG_FILE="/etc/cache-domains.json"
|
||||||
|
|
||||||
configure() {
|
configure() {
|
||||||
mkdir -p ${CACHE_DOMAINS_DIR}
|
mkdir -p "${CACHE_DOMAINS_DIR}"
|
||||||
rm -fr ${CACHE_DOMAINS_DIR}/*
|
rm -fr "${CACHE_DOMAINS_DIR:?}/"*
|
||||||
|
|
||||||
if ! wget -qO - ${CACHE_DOMAINS_SRC} | tar -xzC ${CACHE_DOMAINS_DIR}; then
|
if ! wget -qO - "${CACHE_DOMAINS_SRC}" | tar -xzC "${CACHE_DOMAINS_DIR}"; then
|
||||||
|
rm -fr "${CACHE_DOMAINS_DIR}"
|
||||||
echo "ERROR: Could not retrieve ${CACHE_DOMAINS_SRC}"
|
echo "ERROR: Could not retrieve ${CACHE_DOMAINS_SRC}"
|
||||||
return 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
INITIAL_DIR="$(pwd)"
|
INITIAL_DIR="$(pwd)"
|
||||||
cd ${CACHE_DOMAINS_DIR}/*/scripts/
|
cd "${CACHE_DOMAINS_DIR}/"*"/scripts/"
|
||||||
|
|
||||||
if [ ! -f ${CONFIG_FILE} ]; then
|
if [ ! -f "${CONFIG_FILE}" ]; then
|
||||||
cp config.example.json ${CONFIG_FILE}
|
cp "config.example.json" "${CONFIG_FILE}"
|
||||||
echo "Using example config file ${CONFIG_FILE}"
|
echo "Using example config file ${CONFIG_FILE}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp ${CONFIG_FILE} config.json
|
cp "${CONFIG_FILE}" "config.json"
|
||||||
./create-dnsmasq.sh
|
./create-dnsmasq.sh
|
||||||
cp ./output/dnsmasq/* /var/dnsmasq.d/
|
cp "./output/dnsmasq/"* "/var/dnsmasq.d/"
|
||||||
|
|
||||||
cd ${INITIAL_DIR}
|
cd "${INITIAL_DIR}"
|
||||||
|
|
||||||
/etc/init.d/dnsmasq restart
|
/etc/init.d/dnsmasq restart
|
||||||
}
|
}
|
||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
# leave dnsmasq in a clean state
|
# leave dnsmasq in a clean state
|
||||||
for FILE in ${CACHE_DOMAINS_DIR}/*/scripts/output/dnsmasq/*; do
|
for FILE in "${CACHE_DOMAINS_DIR}/"*"/scripts/output/dnsmasq/"*; do
|
||||||
rm -f /tmp/dnsmasq.d/$(basename ${FILE})
|
rm -f "/tmp/dnsmasq.d/$(basename "${FILE}")"
|
||||||
done
|
done
|
||||||
|
|
||||||
/etc/init.d/dnsmasq restart
|
/etc/init.d/dnsmasq restart
|
||||||
|
|
Loading…
Reference in a new issue