diff -Nru rp-pppoe-3.5.orig/scripts/adsl-setup.in rp-pppoe-3.5/scripts/adsl-setup.in --- rp-pppoe-3.5.orig/scripts/adsl-setup.in 2002-07-08 17:38:24.000000000 +0300 +++ rp-pppoe-3.5/scripts/adsl-setup.in 2005-04-25 17:06:59.000000000 +0300 @@ -86,12 +86,14 @@ $ECHO "USER NAME" $ECHO "" $ECHO -n ">>> Enter your PPPoE user name (default $USER): " - read U - - if [ "$U" = "" ] ; then - U="$USER" + read Uu + + 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 $IFCONFIG $ETH > /dev/null 2>&1 || ETH=eth0 @@ -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-adsl.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 ""