1 | #!/bin/bash |
---|
2 | |
---|
3 | . /etc/init.d/functions |
---|
4 | |
---|
5 | # ifup-post can't be done for slip :-( Solution: use PPP |
---|
6 | |
---|
7 | # become a daemon in case we have to persist. |
---|
8 | if [ "$1" != daemon ] ; then |
---|
9 | # disconnect stdin, out, err to disassociate from controlling tty |
---|
10 | # so that no HUPs will get through. |
---|
11 | $0 daemon $*& </dev/null >/dev/null 2>/dev/null |
---|
12 | exit 0 |
---|
13 | fi |
---|
14 | shift |
---|
15 | |
---|
16 | cd /etc/sysconfig/network-scripts |
---|
17 | . /etc/sysconfig/network-scripts/network-functions |
---|
18 | |
---|
19 | CONFIG=$1 |
---|
20 | source_config |
---|
21 | |
---|
22 | if [ "foo$2" = "fooboot" -a ${ONBOOT} = "no" ] |
---|
23 | then |
---|
24 | exit |
---|
25 | fi |
---|
26 | |
---|
27 | if [ -z "$RETRYTIMEOUT" ]; then |
---|
28 | RETRYTIMEOUT=30 |
---|
29 | fi |
---|
30 | |
---|
31 | [ -x /usr/sbin/dip ] || { |
---|
32 | echo $"/usr/sbin/dip does not exist or is not executable" |
---|
33 | echo $"ifup-sl for $DEVICE exiting" |
---|
34 | logger -p daemon.info -t ifup-sl \ |
---|
35 | $"/usr/sbin/dip does not exist or is not executable for $DEVICE" |
---|
36 | exit 1 |
---|
37 | } |
---|
38 | |
---|
39 | DIPSCRIPT=/etc/sysconfig/network-scripts/dip-$DEVNAME |
---|
40 | [ -f $DIPSCRIPT ] || { |
---|
41 | DIPSCRIPT=/etc/sysconfig/network-scripts/dip-$PARENTDEVNAME |
---|
42 | } |
---|
43 | [ -f $DIPSCRIPT ] || { |
---|
44 | echo $"/etc/sysconfig/network-scripts/dip-$DEVICE does not exist" |
---|
45 | echo $"ifup-sl for $DEVICE exiting" |
---|
46 | logger -p daemon.info -t ifup-sl \ |
---|
47 | $"/etc/sysconfig/network-scripts/dip-$DEVICE does not exist for $DEVICE" |
---|
48 | exit 1 |
---|
49 | } |
---|
50 | |
---|
51 | while : ; do |
---|
52 | echo > /var/run/sl-$DEVICE.dev |
---|
53 | (logger -p daemon.info -t ifup-sl \ |
---|
54 | $"dip started for $DEVICE on $MODEMPORT at $LINESPEED" &)& |
---|
55 | doexec /usr/sbin/dip dip-$DEVICE $DIPSCRIPT |
---|
56 | if [ "$PERSIST" != "yes" -o ! -f /var/run/sl-$DEVICE.dev ] ; then |
---|
57 | exit 0 |
---|
58 | fi |
---|
59 | while [ -f /var/run/LCK..$DEVICE && killall -0 dip ] ; do |
---|
60 | sleep 10 |
---|
61 | done |
---|
62 | rm -f /var/run/sl-$DEVICE.dev |
---|
63 | |
---|
64 | sleep $RETRYTIMEOUT || { |
---|
65 | # sleep was killed |
---|
66 | exit 0 |
---|
67 | } |
---|
68 | done |
---|
69 | |
---|