summaryrefslogtreecommitdiffstats
path: root/debian/wide-dhcpv6-client.postinst
diff options
context:
space:
mode:
Diffstat (limited to 'debian/wide-dhcpv6-client.postinst')
-rw-r--r--debian/wide-dhcpv6-client.postinst66
1 files changed, 66 insertions, 0 deletions
diff --git a/debian/wide-dhcpv6-client.postinst b/debian/wide-dhcpv6-client.postinst
new file mode 100644
index 0000000..5264de1
--- /dev/null
+++ b/debian/wide-dhcpv6-client.postinst
@@ -0,0 +1,66 @@
+#!/bin/sh
+
+set -e
+
+case "$1" in
+ configure|reconfigure)
+ # continue
+ ;;
+ abort-upgrade|abort-remove|abort-deconfigure)
+ exit 0
+ ;;
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 0
+ ;;
+esac
+
+# debconf
+. /usr/share/debconf/confmodule
+
+DHCP6CCTLKEY=/etc/wide-dhcpv6/dhcp6cctlkey
+INITCONFFILE=/etc/default/wide-dhcpv6-client
+[ -f ${INITCONFFILE} ] &&
+ VERBOSE=$(grep ^VERBOSE ${INITCONFFILE}|sed -e 's:^VERBOSE=\(.*\):\1:')
+
+# The key mustn't be world readable
+umask 066
+
+[ -r "${DHCP6CCTLKEY}" ] || {
+ echo "Generating ${DHCP6CCTLKEY}..." >&2
+ dd if=/dev/random bs=32 count=1 2>/dev/null | \
+ uuencode -m ${DHCP6CCTLKEY} | \
+ head -n 2 | tail -n 1 > ${DHCP6CCTLKEY}
+}
+
+umask 022
+
+echo "Generating ${INITCONFFILE}..." >&2
+cat >$INITCONFFILE <<'EOFINITCONFFILE'
+# Defaults for dhcpv6 client initscript
+# Used by /etc/init.d/wide-dhcpv6-client
+
+# Interfaces on which the client should send DHCPv6 requests and listen to
+# answers. If empty, the client is deactivated.
+INTERFACES=""
+
+# Verbose level for syslog. Default is 0 (0: minimal; 1: info; 2: debug)
+#VERBOSE=0
+EOFINITCONFFILE
+[ -n "$VERBOSE" ] && echo VERBOSE=${VERBOSE} >> ${INITCONFFILE}
+
+# Debconf
+db_get wide-dhcpv6-client/interfaces || true
+INTERFACES=${RET}
+
+TMPFILE=`mktemp -q ${INITCONFFILE}.new.XXXXXX`
+sed -e "s,^[[:space:]]*INTERFACES[[:space:]]*=.*,INTERFACES=\"${INTERFACES}\"," \
+ <${INITCONFFILE} >${TMPFILE}
+cp ${TMPFILE} ${INITCONFFILE}
+rm ${TMPFILE}
+
+db_stop
+
+#DEBHELPER#
+
+exit 0