File: fctStartAdsl

package info (click to toggle)
eagle-usb 2.1.1-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 5,108 kB
  • ctags: 2,612
  • sloc: ansic: 27,560; sh: 5,440; perl: 3,269; xml: 1,079; tcl: 915; makefile: 878
file content (262 lines) | stat: -rwxr-xr-x 6,962 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
#!/bin/bash
# $Id: fctStartAdsl,v 1.25 2005/01/16 22:04:34 Tux Exp $

# Copyright (C) 2003-2005 Olivier Borowski
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

# Goal :
#	start ADSL connexion (do not display anything)
# Params :
#	h = display help
#	m = start mire
#	s = simple mode (don't use ifup & ifdown scripts => do not requiere ifcfg-ethX)
#	t = set timeout delay (default=60s)
#	a = use ip address (use -a xx.xx.xx.xx), imply simple mode
#	d = launch pppd in debug mode
#	i = for launch with pty option of pppd
#		// old usage : only put modem interface up (ifup ethX)
#	k = keep: garder la main Ns (ou jusqu' ce que connexion ok)
# Error codes :
#	1 = pppd already lauched (non degroup)
#	2 = modem can't be synchronized
#	3 = can't launch pppd
#	4 = can't set modem interface "up"
#	5 = eagle-usb must be configured once time
#	6 = non pppd users can't use startadsl -m

# the following line will be replaced by the absolute path of setvars
exit 123

set -- "${@//#--help/-h}"
set -- "${@//#--mire/-m}"
set -- "${@//#--simple/-s}"
set -- "${@//#--timeout=/-t}"
set -- "${@//#--ifup/-i}"
set -- "${@//#--ip=/-a}"
set -- "${@//#--ip/-a}"
set -- "${@//#--keep=/-k}"
set -- "${@//#--debug/-d}"
evalParams() {
	while getopts "hmst:a:dik:" opt; do
		case $opt in
			h  ) doInUtf8 echo -e $FCTSTART_USAGE_MSG ; exit 0 ;;
			m  ) MIRE=1 ;;
			s  ) SIMPLE=1 ;;
			t  ) TIMEOUT=$OPTARG ;;
			a  ) STATIC_IP=$OPTARG ; SIMPLE=1 ;;
			d  ) PPPD_DEBUG=1 ;;
			i  ) DONT_START=1 ;;
			k  ) KEEP=$OPTARG ;;
			\? ) doInUtf8 echo -e $FCTSTART_USAGE_MSG ; exit 1 ;;
		esac
	done
}
ping_test_mt() {
	touch /tmp/setvars_ping_mt
	PING_MT_RES=1
	while [ $PING_MT_RES -ne 0 ]
	do
		sleep 2
		ping_w $1 $2
		PING_MT_RES=$?
	done
	rm -f /tmp/setvars_ping_mt
}
ping_w_maxtimeout() {
	ping_test_mt $1 $2 &
	PID_PING_MT=$!
	kill_ping $PID_PING_MT $2 &
	wait ${PID_PING_MT} 2>/dev/null
	if [ -e /tmp/setvars_ping_mt ] ; then
		rm -f /tmp/setvars_ping_mt
		return 1
	fi
	return 0
}
#STATIC_IP="none"
MIRE=0
TIMEOUT=60
DONT_START=0
PPPD_DEBUG=0
KEEP=0
evalParams "$@"


# eagleconfig has never been run => quit
if [ -f $EU_DIR/eagle-usb_must_be_configured ] ; then
	exit 5
fi

if [ "$PPPOX" != "none" ] ; then

	# startadsl or startmire?
	if [ $MIRE -eq 1 ] ; then
		OPTIONS=$PPP_OPTIONS_MIRE
	else
		OPTIONS=$PPP_OPTIONS_ADSL
	fi

	# pppd already lanched?
	if [ $DONT_START -eq 0  -a  ! -z "`pidof pppd`" ] ; then
		exit 1
	fi

else
	# mire can only be used by pppd users
	if [ $MIRE -eq 1 ] ; then
		exit 6
	fi
fi

# waiting Nsec for synchro (default: N=60)
$EAGLECTRL -s$TIMEOUT &>/dev/null

if [ $? -ne 0 ] ; then
	exit 2
fi

if [ ! -z "`route | grep default`" ] ; then
	route del default
fi

INTERFACE="`$EAGLECTRL -i`"

if [ "$PPPOX" = "none" ] ; then
	# ===== non pppd => only ifup =====
	if [ "$STATIC_IP" != "none" ] ; then
			GATEWAY="`echo $STATIC_IP | cut -d '.' -f1-3`.254"
			ifconfig $INTERFACE $STATIC_IP netmask 255.255.255.0
			if [ $? -ne 0 ] ; then exit 4 ; fi
			route add default gw $GATEWAY
	else
		if [ $USE_IFUPDOWN -eq 1  -a  $SIMPLE -eq 0 ] ; then
			ifup $INTERFACE &>/dev/null
		else
			dhclient $INTERFACE &>/dev/null
		fi
		if [ $? -ne 0 ] ; then exit 4 ; fi
	fi
else
	# ===== pppd => ifup & pppd =====
	if [ $DONT_START -eq 1 ] ; then
		RES="`ifconfig | grep $INTERFACE`"
		if [ -z "$RES" ] ; then
			# - pppd call adsl => interface is not up yet
			# - startadsl => interface is already up, skip this step
			if [ $USE_IFUPDOWN -eq 1  -a  $SIMPLE -eq 0 ] ; then
				ifup $INTERFACE &>/dev/null
			else
				ifconfig $INTERFACE 0.0.0.0 up
			fi
		fi
		exec $PPPOX -I $INTERFACE 2>/dev/null
	fi
	if [ $USE_IFUPDOWN -eq 1  -a  $SIMPLE -eq 0 ] ; then
		ifup $INTERFACE &>/dev/null
	else
		ifconfig $INTERFACE 0.0.0.0 up
	fi
	if [ "$DISTRIB" != "Suse" ] ; then
		if [ $PPPD_DEBUG -eq 0 ] ; then
			pppd file $OPTIONS &>/dev/null
		else
			pppd debug file $OPTIONS 2>&1 | logger
		fi
		if [ $? -ne 0 ] ; then exit 4 ; fi
	else
		if [ $PPPD_DEBUG -eq 0 ] ; then
			pppd file $OPTIONS &>/dev/null &
		else
			pppd debug file $OPTIONS 2>&1 | logger &
		fi
	fi
fi

if [ $KEEP != 0 ] ; then
	ping_w_maxtimeout 213.228.0.42 $KEEP
	exit $?
else
	exit 0
fi

#***************************************************************************
# $Log: fctStartAdsl,v $
# Revision 1.25  2005/01/16 22:04:34  Tux
# - add license header
#
# Revision 1.24  2005/01/04 21:14:05  Tux
# - switch strings to utf-8
#
# Revision 1.23  2004/11/21 15:29:41  Tux
# - replaced == with -eq
#
# Revision 1.22  2004/11/11 16:21:26  mcoolive
# - renaming $EU_SCRIPT_DIR/lock in $EU_DIR/eagle-usb_must_be_configured
#
# Revision 1.21  2004/11/11 15:29:10  mcoolive
# - improve comments
#
# Revision 1.20  2004/11/11 10:56:04  mcoolive
# - tests are simplified ( && -> -a ; || -> -o )
#
# Revision 1.19  2004/11/04 23:54:18  mcoolive
# - shift error>=7 (exit and comments) for the "6 = modem not operational"
#
# Revision 1.18  2004/11/04 20:03:42  Tux
# - only allow users using pppd to connect to the mire
#
# Revision 1.17  2004/09/28 10:06:43  mcoolive
# - to respect POSIX: commands are typed "int main..."
#   => replace "$? !="  by  "$? -ne"
#
# Revision 1.16  2004/09/14 21:00:31  Tux
# - redirect debug mode (-d) output to syslog instead of /dev/null !
#
# Revision 1.15  2004/08/26 21:40:48  Tux
# - add exec to avoid an unuseful process
#
# Revision 1.14  2004/08/10 16:51:13  Tux
# - removed an unuseful condition
#
# Revision 1.13  2004/08/09 21:26:31  Tux
# - add pppoe support for "fctStartAdsl -i"
#
# Revision 1.12  2004/08/01 20:12:07  Tux
# - hide messages when launching startadsl within a terminal
#
# Revision 1.11  2004/07/19 20:43:21  Tux
# - "fctStartAdsl -i" now start pppoa itself (no more use of  pty "...pppoa -I $IF" )
#
# Revision 1.10  2004/07/16 21:08:58  Tux
# - simplify parameters processing
#
# Revision 1.9  2004/06/08 19:47:05  Tux
# - 1.9.8
#
# Revision 1.8  2004/04/24 10:57:14  Tux
# - network mask changed from 255.255.255.255 to 255.255.255.0
#   for non-pppd users
#
# Revision 1.7  2004/04/21 20:07:52  Tux
# *** empty log message ***
#
# Revision 1.6  2004/04/21 19:59:37  Tux
# - virtual interface does not use an IP anymore
#
# Revision 1.5  2004/04/21 18:19:21  Tux
# - some changes with ">/dev/null"
#
#***************************************************************************/