]> TLD Linux GIT Repositories - rc-scripts.git/blob - lib/ifup-sl
- disable lock checks (happens on LUKS2 and fails during system boot)
[rc-scripts.git] / lib / ifup-sl
1 #!/bin/sh
2 #
3 #
4 PATH=/sbin:/usr/sbin:/bin:/usr/bin
5
6 # ifup-post can't be done for slip :-( Solution: use PPP
7
8 . /etc/sysconfig/network
9 . /etc/rc.d/init.d/functions
10 . /lib/rc-scripts/functions.network
11
12 # become a daemon in case we have to persist.
13 if [ "$1" != daemon ] ; then
14         # disconnect stdin, out, err to disassociate from controlling tty
15         # so that no HUPs will get through.
16         $0 daemon $*& </dev/null >/dev/null 2>/dev/null
17         exit 0
18 fi
19 shift
20
21 CONFIG=$1
22 source_config
23
24 if [ "foo$2" = "fooboot" ] && is_no ${ONBOOT}; then
25         exit
26 fi
27
28 # set all major variables
29 setup_ip_param
30
31 if [ -z "$RETRYTIMEOUT" ]; then
32         RETRYTIMEOUT=30
33 fi
34
35 # Try to load slip module
36 if is_module "slip"; then
37         /sbin/modprobe -s slip
38 fi
39
40 # we can use dip or direct slip connection via slattach
41 if is_no "$DIRECT_CONNECT"; then
42         [ -x /usr/sbin/dip ] || {
43                 nls "%s does not exist or is not executable" "/usr/sbin/dip"
44                 nls "%s for %s exiting" "ifup-sl" "$DEVICE"
45                 logger -p daemon.info -t ifup-sl \
46                         "$(nls '%s does not exist or is not executable for %s' "/usr/sbin/dip" "$DEVICE")"
47                 exit 1
48         }
49
50         DIPSCRIPT=/etc/sysconfig/interfaces/data/dip-$DEVNAME
51         [ -f $DIPSCRIPT ] || {
52                 DIPSCRIPT=/etc/sysconfig/interfaces/data/dip-$PARENTDEVNAME
53         }
54         [ -f $DIPSCRIPT ] || {
55                 nls '%s does not exist' "/etc/sysconfig/interfaces/data/dip-$DEVICE"
56                 nls 'ifup-sl - %s exiting' "$DEVICE"
57                 logger -p daemon.info -t ifup-sl \
58                         "$(nls '%s does not exist for %s' "/etc/sysconfig/interfaces/data/dip-$DEVICE" "$DEVICE")"
59                 exit 1
60         }
61
62         while : ; do
63                 echo > /var/run/sl-$DEVICE.dev
64                 (logger -p daemon.info -t ifup-sl \
65                         "$(nls 'dip started for %s on %s at %s' "$DEVICE" "$MODEMPORT" "$LINESPEED")" &)&
66                 doexec /usr/sbin/dip dip-$DEVICE $DIPSCRIPT
67                 if is_no "$PERSIST" || [ ! -f /var/run/sl-$DEVICE.dev ] ; then
68                         exit 0
69                 fi
70                 rm -f /var/run/sl-$DEVICE.dev
71
72                 sleep $RETRYTIMEOUT || {
73                         # sleep was killed
74                         exit 0
75                 }
76         done
77 else
78         # direct connection via slattach
79         [ -z "$MTU" ] && MTU=1500
80         [ -z "$PROTOCOL" ] && PROTOCOL=slip
81
82         [ -x /sbin/slattach ] || {
83                 nls "%s is missing. Can't continue." "/sbin/slattach"
84                 nls "ifup-sl - %s exiting" "$DEVICE"
85                 logger -p daemon.info -t ifup-sl \
86                         "$(nls '%s does not exist or is not executable for %s' "/sbin/slattach" "$DEVICE")"
87                 exit 1
88         }
89
90         echo > /var/run/sl-$DEVICE.dev
91         (logger -p daemon.info -t ifup-sl \
92                 "$(nls 'slattach started for %s on %s at %s' "$DEVICE" "$MODEMPORT" "$LINESPEED")" &)&
93
94         slattach -p $PROTOCOL -s $LINESPEED $MODEMPORT &
95         usleep 1500
96
97         if is_yes "$IPV4_NETWORKING"; then
98                 if [ -n "$IP4ADDR" -a -n "$REMIP" ]; then
99                         # Peer is only for IPv4
100                         ip -4 addr add $IP4ADDR peer $REMIP dev $DEVICE
101                 fi
102         fi
103
104         if is_yes "$IPV6_NETWORKING"; then
105                 if [ -n "$IP6ADDR" ]; then
106                         ip -6 addr add $IP6ADDR dev $DEVICE
107                 fi
108         fi
109
110         ip link set $DEVICE mtu $MTU up
111
112         # IPv4/6 gateways and default routes
113         setup_ip_gw_ro
114
115         /lib/rc-scripts/ifup-post $1
116 fi