| #!/bin/sh -e | |
| create_hosts_file() { | |
| if [ -e /etc/hosts ]; then return 0; fi | |
| cat > /etc/hosts <<-EOF | |
| 127.0.0.1 localhost | |
| ::1 localhost ip6-localhost ip6-loopback | |
| fe00::0 ip6-localnet | |
| ff00::0 ip6-mcastprefix | |
| ff02::1 ip6-allnodes | |
| ff02::2 ip6-allrouters | |
| EOF | |
| } | |
| create_networks_file() { | |
| if [ -e /etc/networks ]; then return 0; fi | |
| cat > /etc/networks <<-EOF | |
| default 0.0.0.0 | |
| loopback 127.0.0.0 | |
| link-local 169.254.0.0 | |
| EOF | |
| } | |
| update_rc() { | |
| if [ -x /etc/init.d/networking ]; then | |
| update-rc.d networking start 40 S . start 35 0 6 . > /dev/null | |
| fi | |
| } | |
| # create bindv6only.conf on new installs and upgrades from << 4.38 | |
| create_bindv6only_conf() { | |
| if [ -e /etc/sysctl.d/bindv6only.conf ]; then | |
| return 0 | |
| fi | |
| [ "$(uname -s)" = "Linux" ] || return 0 | |
| [ -d /etc/sysctl.d/ ] || mkdir /etc/sysctl.d/ | |
| if [ "$2" ] && dpkg --compare-versions "$2" ge "4.38"; then | |
| return 0 | |
| fi | |
| cat >> /etc/sysctl.d/bindv6only.conf <<-EOF | |
| # This sysctl sets the default value of the IPV6_V6ONLY socket option. | |
| # | |
| # When disabled, IPv6 sockets will also be able to send and receive IPv4 | |
| # traffic with addresses in the form ::ffff:192.0.2.1 and daemons listening | |
| # on IPv6 sockets will also accept IPv4 connections. | |
| # | |
| # When IPV6_V6ONLY is enabled, daemons interested in both IPv4 and IPv6 | |
| # connections must open two listening sockets. | |
| # This is the default behaviour of almost all modern operating systems. | |
| net.ipv6.bindv6only = 1 | |
| EOF | |
| } | |
| case "$1" in | |
| configure) | |
| if [ -z "$2" ]; then | |
| create_hosts_file | |
| create_networks_file | |
| fi | |
| update_rc | |
| #create_bindv6only_conf "$@" | |
| ;; | |
| abort-upgrade|abort-remove|abort-deconfigure) | |
| ;; | |
| *) | |
| echo "postinst called with unknown argument '$1'" >&2 | |
| exit 1 | |
| ;; | |
| esac | |
| #DEBHELPER# | |