#!/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



