summaryrefslogtreecommitdiff
blob: 8ef99a4b7aa92d33040d35f223adaee24ca11581 (plain)
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
diff -Nru rp-pppoe-3.10.orig/scripts/pppoe-setup.in rp-pppoe-3.10/scripts/pppoe-setup.in
--- rp-pppoe-3.10.orig/scripts/pppoe-setup.in	2008-06-30 16:00:42.000000000 +0200
+++ rp-pppoe-3.10/scripts/pppoe-setup.in	2008-06-30 22:23:40.000000000 +0200
@@ -86,11 +86,13 @@
     $ECHO "USER NAME"
     $ECHO ""
     printf "%s" ">>> Enter your PPPoE user name (default $USER): "
-    read U
+    read Uu
 
-    if [ "$U" = "" ] ; then
-	U="$USER"
+    if [ "$Uu" = "" ] ; then
+	Uu="$USER"
     fi
+  
+    U=`echo $Uu | sed -e "s/&/\\\\\&/g"`
 
     # Under Linux, "fix" the default interface if eth1 is not available
     if test `uname -s` = "Linux" ; then
@@ -221,7 +223,7 @@
     $ECHO "** Summary of what you entered **"
     $ECHO ""
     $ECHO "Ethernet Interface: $E"
-    $ECHO "User name:          $U"
+    $ECHO "User name:          $Uu"
     if [ "$D" = "no" ] ; then
 	$ECHO "Activate-on-demand: No"
     else
@@ -288,7 +290,12 @@
 fi
 
 # Some #$(*& ISP's use a slash in the user name...
-sed -e "s&^USER=.*&USER='$U'&" \
+for SEP in ':' ';' '/' '!' '|' '_' '-' '@' ; do 
+	if [ "$U" = `echo $U | sed "sI${SEP}II"` ]; then 
+		break;
+	fi
+done
+sed -e "s${SEP}^USER=.*${SEP}USER='$U'${SEP}"\
     -e "s&^ETH=.*&ETH='$E'&" \
     -e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-pppoe.pid\"&" \
     -e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \
@@ -337,10 +344,10 @@
     cp /dev/null /etc/ppp/chap-secrets-bak
 fi
 
-egrep -v "^$U|^\"$U\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets
-$ECHO "\"$U\"	*	\"$PWD1\"" >> /etc/ppp/pap-secrets
-egrep -v "^$U|^\"$U\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets
-$ECHO "\"$U\"	*	\"$PWD1\"" >> /etc/ppp/chap-secrets
+egrep -v "^$Uu|^\"$Uu\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets
+$ECHO "\"$Uu\"	*	\"$PWD1\"" >> /etc/ppp/pap-secrets
+egrep -v "^$Uu|^\"$Uu\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets
+$ECHO "\"$Uu\"	*	\"$PWD1\"" >> /etc/ppp/chap-secrets
 
 $ECHO ""
 $ECHO ""