| 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=.*Ð='$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 "" |