]>
Commit | Line | Data |
---|---|---|
d1017fec | 1 | #!/bin/sh |
a6f80f0e | 2 | set -e |
3 | ||
d486dd0d JF |
4 | MYNAME="${0##*/}" |
5 | ||
6 | report() { echo "${MYNAME}: $*" ; } | |
7 | report_warn() { report "Warning: $*" >&2 ; } | |
8 | report_err() { report "Error: $*" >&2 ; } | |
9 | ||
10 | fix_dhclient_file_with_space() | |
11 | { | |
12 | # because of a typo an older ifupdown2 version was creating lease file | |
13 | # with trailing space. In case we still have users with such files we | |
14 | # need to strip that trailing whitespace. | |
15 | for filename in `find /var/lib/dhcp/ -name "dhclient.*.leases "` | |
16 | do | |
17 | if [ -f "$filename " ]; | |
18 | then | |
19 | interface_name=`echo $filename | cut -d'.' -f2,3,4,5` | |
20 | mv "$filename " /var/lib/dhcp/dhclient6.$interface_name | |
21 | fi | |
22 | done | |
23 | } | |
24 | ||
25 | process_etc_network_interfaces() | |
26 | { | |
27 | # Generic stuff done on all configurations | |
28 | if [ -f /etc/network/interfaces ] ; then | |
29 | if ! grep -q -E "^[[:space:]]*iface[[:space:]]+l[o0]([[:space:]]+inet([[:space:]]+loopback)?)?[[:space:]]*$" /etc/network/interfaces ; then | |
30 | report_warn "No 'iface lo' definition found in /etc/network/interfaces" | |
31 | fi | |
32 | ||
33 | if ! grep -q "^[[:space:]]*\(allow-\|\)auto[[:space:]]\+\(.*[[:space:]]\+\|\)lo0\?\([[:space:]]\+\|$\)" /etc/network/interfaces ; then | |
34 | report_warn "No 'auto lo' statement found in /etc/network/interfaces" | |
35 | fi | |
36 | else # ! -f /etc/network/interfaces | |
37 | if [ -z "$2" ]; then | |
38 | echo "Creating /etc/network/interfaces." | |
39 | echo "# interfaces(5) file used by ifup(8) and ifdown(8)" > /etc/network/interfaces | |
40 | echo "auto lo" >> /etc/network/interfaces | |
41 | echo "iface lo inet loopback" >> /etc/network/interfaces | |
42 | else | |
43 | report_warn "/etc/network/interfaces does not exist" | |
44 | fi | |
45 | fi | |
46 | } | |
d1017fec | 47 | |
458b49fa RP |
48 | process_udev() |
49 | { | |
50 | # override default udev bridge and hotplug rules because they interfere with | |
51 | # networking init script | |
52 | udev_user_rulesdir=/etc/udev/rules.d/ | |
53 | udev_sys_rulesdir=/lib/udev/rules.d/ | |
54 | if [ -e $udev_user_rulesdir ]; then | |
55 | udev_ifupdown2_overrides="80-networking.rules | |
56 | 60-bridge-network-interface.rules" | |
57 | for u in ${udev_ifupdown2_overrides} | |
58 | do | |
59 | if [ -e ${udev_sys_rulesdir}/$u -a ! -e ${udev_user_rulesdir}/$u ]; then | |
60 | (cd ${udev_user_rulesdir} && ln -sf /dev/null $u) | |
61 | fi | |
62 | done | |
63 | fi | |
64 | } | |
65 | ||
a6f80f0e | 66 | case "$1" in |
67 | configure) | |
d486dd0d JF |
68 | fix_dhclient_file_with_space |
69 | process_etc_network_interfaces | |
458b49fa | 70 | process_udev |
d486dd0d JF |
71 | chmod +x /usr/share/ifupdown2/__main__.py |
72 | ;; | |
73 | ||
74 | abort-upgrade|abort-remove|abort-deconfigure) | |
75 | ;; | |
a6f80f0e | 76 | |
d486dd0d JF |
77 | *) |
78 | echo "postinst called with unknown argument \`$1'" >&2 | |
79 | exit 1 | |
59dad2ca | 80 | ;; |
a6f80f0e | 81 | esac |
82 | ||
d486dd0d | 83 | |
a6f80f0e | 84 | #DEBHELPER# |
ef7b7c04 JT |
85 | |
86 | exit 0 |