diff options
Diffstat (limited to 'debian/wide-dhcpv6-client.postinst')
-rw-r--r-- | debian/wide-dhcpv6-client.postinst | 66 |
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 |