#!/bin/bash
#(c) Copyright 2007 Barry Kauler www.puppylinux.com
#2007 Lesser GPL licence v2 (http://www.fsf.org/licensing/licenses/lgpl.html)
#written for Puppy Linux 2.17+
#BK v3.91: keep log if failed to connect, display in main status log.
#BK v3.98: improve create mono font in status log. bugfixes.
#BK v3.98: one bugfix had to be removed, which fixed another bugfix.
#BK v3.99: corrected handling of params for each isp.
#BK v3.99: added Stupid Mode and Auto reconnect checkboxes for each isp.
#BK v4.00: crash bugfix.
#HairyWill v4.00: handle init string with quotes, prevent gtkdialog crash.
#v405 updated. 
#v408 old pap-secrets, chap-secrets problem has returned, workaround applied.
#v408 rerwin: Make modem startup after 'erase' same as for first time with no conf file. 
#v409 rerwin: bugfix, need a delay for fast machines.
#v412 rerwin: increase sleep from 0.3 to 1.
#Translated for Russian by Pro.

KERNVER="`uname -r`"

#если нет wvdial.conf, создать его с параметрами по умолчанию...
MYDEVM="MYDEVM"
[ -h /dev/modem ] && MYDEVM='/dev/'"`readlink /dev/modem`"
#note, MYDEVM is placeholder for '/dev/ttyS0' whereas DEVM is just 'ttyS0'.
#v408 rerwin...
if [ ! -s /etc/wvdial.conf -o "`grep '/dev/MYDEVM' /etc/wvdial.conf`" != ""  ];then   #also replace empty file #v408
 if [ ! -s /etc/wvdial.conf ];then   #v408
  echo "[Dialer Defaults]
Modem = ${MYDEVM}
Baud = 57600
Init1 = ATZ
Init2 = 
Carrier Check = no
Dial Command = ATDT
Phone = MYISPPHONENUM
Username = MYUSERNAME
Password = MYPASSWORD

[Dialer isp2]
Phone = MY2ISPPHONENUM
Username = MY2USERNAME
Password = MY2PASSWORD" > /etc/wvdial.conf
#v408 Treat erased modem device name same as for absent wvdial.conf.
 else #wvdial.conf indicates modem field has been erased
  if [ "$MYDEVM" != "MYDEVM" ];then #modem detected; make config agree with /dev/modem.
   SEDSCRIPT="s%/dev/MYDEVM%$MYDEVM%"
   sed -i -e "$SEDSCRIPT" /etc/wvdial.conf
  fi
 fi
#v408 end rerwin.
 if [ "$MYDEVM" != "MYDEVM" -a "$MYDEVM" != "modem" ];then
  Xdialog --left --wmclass "pupdial" --title "PupDial: строка инициализации модема" --no-cancel --yesno "Возможно у вас имееется модем на порту ${MYDEVM}\n
Для правильной работы модема необходимо указать нужную строку инициализации.\n
Во-первых, необходимо дать команду 'ATZ' для сброса настроек модема.\n
Для многих модемов это всё, что требуется сделать, и вы можете нажать\n
кнопку 'No', т.к. больше никаких проверок не требуется.\n
В то же время некоторые модемы нуждаются в дополнительной настройке. Если Вы\n
нажмёте 'Yes' (рекомендуется), будет предпринята попытка определить нужную\n
строку инициализации. Попытка определения строки инициализации будет завершена\n
через 29 секунд и, если она будет неудачной, строка останется пустой. 
Замечание: Можно вручную ввести нужную строку инициализации в окне PupDial\n
(Описание необходимой строки инициализации должно быть в Руководстве\n
пользователя модема).\n
\n
Рекомендуется нажать 'Yes', после чего PupDial начнет работу..." 0 0
  RETVAL=$?
  DEVM="`echo -n "$MYDEVM" | cut -f 3,4 -d '/'`"
  [ $RETVAL -eq 0 ] && modemtest $DEVM initonly
 fi
fi

#disconnect button...
STATECONb="disabled"
#v409 rerwin, bugfix...
#[ "`pidof pppd`" != "" ] && STATECONb="enabled"
if [ "`pidof pppd`" != "" ];then #v409
 [ ! -f /etc/ppp/peers/wvdial ] && sleep 1 #v409 allow kill completion and repeat test. v412 0.3 to 1.
 [ "`pidof pppd`" != "" ] && STATECONb="enabled"
fi #v409

MSG1="ВНИМАНИЕ! модем не обнаружен!"
STATECONa="disabled"
STATECCM="yes"
STATEDTM="yes"
STATEBCM="yes"
TESTMSG="MODEM"


#precaution...
cat /etc/wvdial.conf | tr '\t' ' ' | tr -s ' ' > /tmp/wvdial.conf
sync
#Rerwin: v4.05 Substitute /dev/modem target for /dev/modem
if [ "`grep '/dev/modem' /tmp/wvdial.conf`" != "" -a -h /dev/modem ];then #modem = /dev/modem & it exists
 echo "s/\/dev\/modem/\/dev\/`readlink /dev/modem`/g" > /tmp/pupdialsedscript
 sed -i -f /tmp/pupdialsedscript /tmp/wvdial.conf #replace device in-place
fi
mv -f /tmp/wvdial.conf /etc/wvdial.conf

ACC1ISP="`cat /etc/wvdial.conf | grep '^Phone = ' | head -n 1 | cut -f 3-6 -d ' '`"
ACC2ISP="`cat /etc/wvdial.conf | grep '^Phone = ' | tail -n 1 | cut -f 3-6 -d ' '`"
[ "$ACC1ISP" = "$ACC2ISP" ] && ACC2ISP=""
ACC1USER="`cat /etc/wvdial.conf | grep '^Username = ' | head -n 1 | cut -f 3 -d ' '`"
ACC2USER="`cat /etc/wvdial.conf | grep '^Username = ' | tail -n 1 | cut -f 3 -d ' '`"
[ "$ACC1USER" = "$ACC2USER" ] && ACC2USER=""
ACC1PASS="`cat /etc/wvdial.conf | grep '^Password = ' | head -n 1 | cut -f 3 -d ' '`"
ACC2PASS="`cat /etc/wvdial.conf | grep '^Password = ' | tail -n 1 | cut -f 3 -d ' '`"
[ "$ACC1PASS" = "$ACC2PASS" ] && ACC2PASS=""

#1st 'cut' fixes if the '/dev/' left off the device name...
#note, initialised wvdial.conf has 'Modem = MYDEVM' where MYDEVM needs to become
# '/dev/ttyS0' (for example)
DEVM="`cat /etc/wvdial.conf | grep '^Modem = ' | cut -f 3 -d ' ' | cut -f 3 -d '/'`"
[ "$DEVM" = "" ] && DEVM='MYDEVM' #v4.00 bugfix, crashed if no DEVM.
[ ! -f /tmp/pupdial.log ] && touch /tmp/pupdial.log #v408 rerwin, moved up.
if [ "${DEVM}" != "MYDEVM" ];then
 MSG1="ОТЛИЧНО! Модем определён! Используемый интерфейс: /dev/$DEVM"
 [ "`pidof pppd`" = "" ] && STATECONa="enabled" #dialout button.
 TESTMSG="$DEVM"
 #[ ! -f /tmp/pupdial.log ] && touch /tmp/pupdial.log
 [ "`grep 'АВТОМАТИЧЕСКИ МОДЕМ НЕ ОБНАРУЖЕН' /tmp/pupdial.log`" != "" ] && echo -n "" > /tmp/pupdial.log
 if [ "`grep 'Barry Kauler' /tmp/pupdial.log`" = "" ];then
  echo "Добро пожаловать в PupDial, написанную Barry Kauler для Puppy Linux.

Вышеперечисленные параметры будут сохранены в файле конфигурации
/etc/wvdial.conf после того, как Вы нажмёте кнопку 'Выход' или
'Соединиться с Интернет'. PupDial использует их для работы.
Примечание: Вы также можете изменить их, вручную отредактировав
файл wvdial.conf в обычном текстовом редакторе.

Некоторые компьютеры имеют два модема, возможно, один из них
интегрирован на материнской плате, и Puppy может ошибиться при
определении их. В этом случае нажмите кнопку 'Проверить' и
вручную измените wvdial.conf." >> /tmp/pupdial.log
 fi
else
 if [ "`grep 'Barry Kauler' /tmp/pupdial.log`" = "" ];then
  echo "Добро пожаловать в PupDial, написанную Barry Kauler для Puppy Linux.

АВТОМАТИЧЕСКИ МОДЕМ НЕ ОБНАРУЖЕН, НЕОБХОДИМО
НАЖАТЬ КНОПКУ 'Проверить'. СДЕЛАЙТЕ ЭТО СЕЙЧАС!
" > /tmp/pupdial.log
 fi
fi

 BAUDM="`cat /etc/wvdial.conf | grep '^Baud = ' | cut -f 3 -d ' '`"
 
 #v4.00 HairyWill fixes for embedded $ " characters...
 INIT1M="`cat /etc/wvdial.conf | grep '^Init1 = ' | cut -f 3-12 -d ' '| sed 's/"/\\\\"/g;s/\\$/\\\\$/g;'`"
 INIT2M="`cat /etc/wvdial.conf | grep '^Init2 = ' | cut -f 3-12 -d ' '| sed 's/"/\\\\"/g;s/\\$/\\\\$/g;'`"
 
 DIALM="`cat /etc/wvdial.conf | grep '^Dial Command = ' | cut -f 4 -d ' '`"
 [ "`echo "$DIALM" | grep -E 'X3|X1'`" != "" ] && STATEDTM="no"
 [ "`echo "$DIALM" | grep -E 'X2|X1'`" != "" ] && STATEBCM="no"
 CCM="`cat /etc/wvdial.conf | grep '^Carrier Check = ' | cut -f 4 -d ' '`"
 [ "$CCM" = "no" ] && STATECCM="no"
 
 #v3.99 there may be up to two of each of the above...
 ISPCNT=1
 echo -n "" > /tmp/pupdial_read
 cat /etc/wvdial.conf |
 while read ONELINE
 do
  ONELINE="`echo -n "$ONELINE" | tr '\t' ' ' | tr -s ' '`" #in case user puts in extra tabs and spaces.
  [ "$ONELINE" = "" -o "$ONELINE" = " " ] && ISPCNT=2
  [ "$ONELINE" = "" -o "$ONELINE" = " " ] && continue
  ONEPARAM="`echo -n "$ONELINE" | cut -f 1 -d '=' | sed -e 's/ $//'`"
  ONEVALUE="`echo -n "$ONELINE" | cut -f 2 -d '=' | sed -e 's/^ //'`"
  if [ "$ONEVALUE" != "" ];then
   case $ONEPARAM in
    "Dial Prefix") echo "DIAL_PREFIX${ISPCNT}='${ONEVALUE}'" >> /tmp/pupdial_read ;;
    "Login Prompt") echo "LOGIN_PROMPT${ISPCNT}='${ONEVALUE}'" >> /tmp/pupdial_read ;;
    "Password Prompt") echo "PASSWORD_PROMPT${ISPCNT}='${ONEVALUE}'" >> /tmp/pupdial_read ;;
    "Stupid Mode") echo "STUPID_MODE${ISPCNT}='${ONEVALUE}'" >> /tmp/pupdial_read ;;
    "Default Reply") echo "DEFAULT_REPLY${ISPCNT}='${ONEVALUE}'" >> /tmp/pupdial_read ;;
    "Auto Reconnect") echo "AUTO_RECONNECT${ISPCNT}='${ONEVALUE}'" >> /tmp/pupdial_read ;;
   esac
  fi
 done
 eval "`cat /tmp/pupdial_read`"
 
 #v3.99
 ynSTUPID_MODE1=no
 [ "$STUPID_MODE1" = "1" -o "$STUPID_MODE1" = "yes" ] && ynSTUPID_MODE1=yes
 ynSTUPID_MODE2=no
 [ "$STUPID_MODE2" = "1" -o "$STUPID_MODE2" = "yes" ] && ynSTUPID_MODE2=yes
 ynAUTO_RECONNECT1=yes #default is on.
 [ "$AUTO_RECONNECT1" = "1" -o "$AUTO_RECONNECT1" = "yes" ] && ynAUTO_RECONNECT1=yes
 [ "$AUTO_RECONNECT1" = "0" -o "$AUTO_RECONNECT1" = "no" ] && ynAUTO_RECONNECT1=no
 ynAUTO_RECONNECT2=yes #default is on.
 [ "$AUTO_RECONNECT2" = "1" -o "$AUTO_RECONNECT2" = "yes" ] && ynAUTO_RECONNECT2=yes
 [ "$AUTO_RECONNECT2" = "0" -o "$AUTO_RECONNECT2" = "no" ] && ynAUTO_RECONNECT2=no

 #v4.00 HairyWill, replaced lines (see below), fix for quotes in string...
 #<     <default>\"${INIT1M}\"</default>
 #>     <input>echo \"${INIT1M}\"</input>
 #<     <default>\"${INIT2M}\"</default>
 #>     <input>echo \"${INIT2M}\"</input>

 MODEMINFO="
<hbox>
 <frame Состояние линии>
  <vbox>
   <checkbox>
    <label>Проверка несущей</label>
    <variable>CHECKCC</variable>
    <default>${STATECCM}</default>
   </checkbox>
   <checkbox>
    <label>Определять сигнал готовности</label>
    <variable>CHECKDT</variable>
    <default>${STATEDTM}</default>
   </checkbox>
   <checkbox>
    <label>Определять сигнал занятости</label>
    <variable>CHECKBC</variable>
    <default>${STATEBCM}</default>
   </checkbox>
  </vbox>
 </frame>
 <vbox>
  <hbox>
   <text><label>Максимальная скорость модема:</label></text>
   <entry>
    <default>\"${BAUDM}\"</default>
    <variable>ENTRYBAUDM</variable>
   </entry>
  </hbox>
  <hbox>
   <text><label>Строка инициализации 1:</label></text>
   <entry>
    <input>echo \"${INIT1M}\"</input>
    <variable>ENTRYINIT1M</variable>
   </entry>
  </hbox>
  <hbox>
   <text><label>Строка инициализации 2:</label></text>
   <entry>
    <input>echo \"${INIT2M}\"</input>
    <variable>ENTRYINIT2M</variable>
   </entry>
  </hbox>
 </vbox>
 <frame Проверка>
  <vbox>
   <button>
    <label>${TESTMSG}</label>
    <visible>${STATECONa}</visible>
    <action>/usr/sbin/modemtest ${DEVM} &</action>
   </button>
   <button>
    <label>Проверить</label>
    <action>/usr/sbin/modemprobe</action>
    <action>cat /tmp/logwvdialprobe > /tmp/pupdial.log</action>
    <action type=\"exit\">reload</action>
   </button>
  </vbox>
 </frame>
</hbox>
"


export MAINDIALOG="
<window title=\"PupDial - установление соединения с Интернет через модем\" icon-name=\"gtk-connect\">
 <vbox>
  <frame Установка модема>
   <text  use-markup=\"true\"><label>\"<b>$MSG1</b>\"</label></text>
   ${MODEMINFO}
  </frame>
  <hbox>
   <frame Account 1>
    <vbox>
     <hbox>
      <text><label>Номер телефона:</label></text>
      <entry>
       <default>\"${ACC1ISP}\"</default>
       <variable>ENTRYACC1ISP</variable>
      </entry>
     </hbox>
     <hbox>
      <text><label>Имя пользователя:</label></text>
      <entry>
       <default>\"${ACC1USER}\"</default>
       <variable>ENTRYACC1USER</variable>
      </entry>
     </hbox>
     <hbox>
      <text><label>Пароль:</label></text>
      <entry invisible_char=\"x\" visibility=\"false\">
       <default>\"${ACC1PASS}\"</default>
       <variable>ENTRYACC1PASS</variable>
      </entry>
     </hbox>

     <hbox>
     <checkbox>
      <label>Упрощенный режим</label>
      <variable>ynSTUPID_MODE1</variable>
      <default>${ynSTUPID_MODE1}</default>
     </checkbox>
      <checkbox>
       <label>Автоматически восстанавливать соединение</label>
       <variable>ynAUTO_RECONNECT1</variable>
       <default>${ynAUTO_RECONNECT1}</default>
      </checkbox>
      </hbox>
     
      <button>
       <label>Соединиться с Интернет</label>
       <visible>${STATECONa}</visible>
       <action type=\"exit\">CONNECT1</action>
      </button>
    </vbox>
   </frame>
   <frame Учетная запись 2>
    <vbox>
     <hbox>
      <text><label>Номер телефона:</label></text>
      <entry>
       <default>\"${ACC2ISP}\"</default>
       <variable>ENTRYACC2ISP</variable>
      </entry>
     </hbox>
     <hbox>
      <text><label>Имя пользователя:</label></text>
      <entry>
       <default>\"${ACC2USER}\"</default>
       <variable>ENTRYACC2USER</variable>
      </entry>
     </hbox>
     <hbox>
      <text><label>Пароль:</label></text>
      <entry invisible_char=\"x\" visibility=\"false\">
       <default>\"${ACC2PASS}\"</default>
       <variable>ENTRYACC2PASS</variable>
      </entry>
     </hbox>

     <hbox>
      <checkbox>
       <label>Упрощенный режим</label>
       <variable>ynSTUPID_MODE2</variable>
       <default>${ynSTUPID_MODE2}</default>
      </checkbox>
      <checkbox>
       <label>Автоматически восстанавливать соединение</label>
       <variable>ynAUTO_RECONNECT2</variable>
       <default>${ynAUTO_RECONNECT2}</default>
      </checkbox>
     </hbox>
    
      <button>
       <label>Соединиться с Интернет</label>
       <visible>${STATECONa}</visible>
       <action type=\"exit\">CONNECT2</action>
      </button>
    </vbox>
   </frame>
  </hbox>
  <frame Содержание журнала подключения>
   <edit editable=\"false\">
    <variable>INFO</variable>
    <input file>/tmp/pupdial.log</input>
    <width>600</width>
    <height>170</height>
   </edit>
  </frame>

  <hbox>
   <button>
    <label>Справка о программе WvDial</label>
    <action>Xdialog --wmclass \"pupdial\" --title \"WvDial documentation\" --no-cancel --fixed-font --textbox /usr/share/doc/wvdial/wvdial.txt 0 0 &</action>
   </button>
   <button>
    <label>Справка о конфигурации WvDial</label>
    <action>Xdialog --wmclass \"pupdial\" --title \"WvDial documentation\" --no-cancel --fixed-font --textbox /usr/share/doc/wvdial/wvdial.conf.txt 0 0 &</action>
   </button>
   <text><label>\"          \"</label></text>
   <button>
    <label>Разорвать соединение</label>
    <visible>${STATECONb}</visible>
    <action>rm -f /etc/ppp/peers/wvdial</action>
    <action>killall wvdial</action>
    <action>killall pppd</action>
    <action>rm -f /tmp/pupdial.log</action>
    <action type=\"exit\">EXIT</action>
   </button>
   <button>
    <label>Выход</label>
    <action type=\"exit\">EXIT</action>
   </button>
  </hbox>

 </vbox>
</window>
"

#       <action>wvdial &> /tmp/pupdial.log &</action>
#       <action>sleep 2</action>
#       <action>tail /tmp/pupdial.log > /tmp/pupdial.log.tail</action>
#       <action  type=\"refresh\">INFO</action>

#mono text for log box...
echo 'style "specialmono"
{
  font_name="Mono 12"
}

class "GtkText*" style "specialmono"' > /tmp/gtkrc_mono
export GTK2_RC_FILES=/tmp/gtkrc_mono:/root/.gtkrc-2.0



#RETSTRING="`echo "$MAINDIALOG" | gtkdialog3 --stdin`"
RETSTRING="`gtkdialog3 --program=MAINDIALOG`"

#v4.00 to handle embedded quote, extract ENTRYINIT1M and ENTRYINIT2M separately...
ENTRYINIT1M="`echo "$RETSTRING" | grep '^ENTRYINIT1M=' | cut -f 2-9 -d '"' | sed -e 's/"$//'`" #'geany
ENTRYINIT2M="`echo "$RETSTRING" | grep '^ENTRYINIT2M=' | cut -f 2-9 -d '"' | sed -e 's/"$//'`" #'geany`"
RETSTRING="`echo "$RETSTRING" | grep -v '^ENTRYINIT2M=' | grep -v '^ENTRYINIT1M='`"

#v405 getting some weird stuff on stdout from gtkdialog3, fix...
#all lines must have format variable="value"... v406 add '_'...
xRETSTRING="`echo "$RETSTRING" | grep -E '^[a-zA-Z0-9_]+=\".*\"$'`" # | grep -v '^INFO='

eval "$xRETSTRING"

[ ! -f /etc/wvdial.conf ] && exit
if [ "$EXIT" = "abort" -o "$EXIT" = "" ];then
 rm -f /tmp/pupdial.log #v3.91
 exit
fi

[ "$EXIT" = "reload" ] && exec pupdial

rm -f /tmp/pupdial.log #v3.91

#v3.99
STUPID_MODE1=""
STUPID_MODE2=""
[ "$ynSTUPID_MODE1" = "true" ] && STUPID_MODE1="yes"
[ "$ynSTUPID_MODE2" = "false" -a "$ynSTUPID_MODE1" = "true" ] && STUPID_MODE2="no"
[ "$ynSTUPID_MODE2" = "true" ] && STUPID_MODE2="yes"
[ "$ynAUTO_RECONNECT1" = "true" ] && AUTO_RECONNECT1=yes
[ "$ynAUTO_RECONNECT1" = "false" ] && AUTO_RECONNECT1=no
[ "$ynAUTO_RECONNECT2" = "true" ] && AUTO_RECONNECT2=yes
[ "$ynAUTO_RECONNECT2" = "false" ] && AUTO_RECONNECT2=no

USEREXTRA1="" #v3.99 bug fix...
[ "$DIAL_PREFIX1" != "" ] && USEREXTRA1="${USEREXTRA1}Dial Prefix = ${DIAL_PREFIX1}
"
[ "$LOGIN_PROMPT1" != "" ] && USEREXTRA1="${USEREXTRA1}Login Prompt = ${LOGIN_PROMPT1}
"
[ "$PASSWORD_PROMPT1" != "" ] && USEREXTRA1="${USEREXTRA1}Password Prompt = ${PASSWORD_PROMPT1}
"
[ "$STUPID_MODE1" != "" ] && USEREXTRA1="${USEREXTRA1}Stupid Mode = ${STUPID_MODE1}
"
[ "$DEFAULT_REPLY1" != "" ] && USEREXTRA1="${USEREXTRA1}Default Reply = ${DEFAULT_REPLY1}
"
[ "$AUTO_RECONNECT1" != "" ] && USEREXTRA1="${USEREXTRA1}Auto Reconnect = ${AUTO_RECONNECT1}
"

USEREXTRA2="" #v3.99 bugfix...
[ "$DIAL_PREFIX2" != "" ] && USEREXTRA2="${USEREXTRA2}Dial Prefix = ${DIAL_PREFIX2}
"
[ "$LOGIN_PROMPT2" != "" ] && USEREXTRA2="${USEREXTRA2}Login Prompt = ${LOGIN_PROMPT2}
"
[ "$PASSWORD_PROMPT2" != "" ] && USEREXTRA2="${USEREXTRA2}Password Prompt = ${PASSWORD_PROMPT2}
"
[ "$STUPID_MODE2" != "" ] && USEREXTRA2="${USEREXTRA2}Stupid Mode = ${STUPID_MODE2}
"
[ "$DEFAULT_REPLY2" != "" ] && USEREXTRA2="${USEREXTRA2}Default Reply = ${DEFAULT_REPLY2}
"
[ "$AUTO_RECONNECT2" != "" ] && USEREXTRA2="${USEREXTRA2}Auto Reconnect = ${AUTO_RECONNECT2}
"

[ "$CHECKCC" = "true" ] && CHECKCC="yes"
[ "$CHECKCC" = "false" ] && CHECKCC="no"
DIALSTR="ATDT"
[ "$CHECKDT" = "true" -a "$CHECKBC" = "true" ] && DIALSTR="ATDT"
[ "$CHECKDT" = "false" -a "$CHECKBC" = "true" ] && DIALSTR="ATX3DT"
[ "$CHECKDT" = "false" -a "$CHECKBC" = "false" ] && DIALSTR="ATX1DT"
[ "$CHECKDT" = "true" -a "$CHECKBC" = "false" ] && DIALSTR="ATX2DT"


echo '[Dialer Defaults]' > /etc/wvdial.conf
echo -n "Modem = /dev/${DEVM}
Baud = ${ENTRYBAUDM}
Init1 = ${ENTRYINIT1M}
Init2 = ${ENTRYINIT2M}
Carrier Check = ${CHECKCC}
Dial Command = ${DIALSTR}
Phone = ${ENTRYACC1ISP}
Username = ${ENTRYACC1USER}
Password = ${ENTRYACC1PASS}
${USEREXTRA1}
[Dialer isp2]
Phone = ${ENTRYACC2ISP}
Username = ${ENTRYACC2USER}
Password = ${ENTRYACC2PASS}
${USEREXTRA2}" >> /etc/wvdial.conf

[ "$EXIT" = "EXIT" ] && exit

WVISP=""
[ "$EXIT" = "CONNECT2" ] && WVISP="isp2"

if [ "$EXIT" = "CONNECT1" -o "$EXIT" = "CONNECT2" ];then

 #v3.98 put this in, now remove... v408 back in...
 #v3.98 something wrong with wvdial, it is supposed to automatically write
 #to /etc/ppp/chap-secrets and pap-secrets but isn't...
 if [ "$WVISP" = "" ];then
  echo -e "${ENTRYACC1USER}\t*\t${ENTRYACC1PASS}" > /etc/ppp/chap-secrets
  echo -e "${ENTRYACC1USER}\t*\t${ENTRYACC1PASS}" > /etc/ppp/pap-secrets
 else
  echo -e "${ENTRYACC2USER}\t*\t${ENTRYACC2PASS}" > /etc/ppp/chap-secrets
  echo -e "${ENTRYACC2USER}\t*\t${ENTRYACC2PASS}" > /etc/ppp/pap-secrets
 fi

 rm -f /tmp/pupdial.log

#v3.98 put this in, now remove...
 #v3.98 /etc/ppp/options can cause conflict for wvdial. 
 #(i think 'options' is used by roaring penguin) hide it...
# mv -f /etc/ppp/options /etc/ppp/optionsHIDE

 #/etc/ppp/peers/wvdial and wvdial-pipe are part of wvdial pkg, but these files
 #conflict with Gkdial. Therefore, in the Unleashed wvdial pkg these files are
 #kept in /etc/ppp/ and moved into peers/ as needed...
 cp -f /etc/ppp/wvdial /etc/ppp/peers/
 [ -f /etc/ppp/wvdial-pipe ] && cp -f /etc/ppp/wvdial-pipe /etc/ppp/peers/ #v3.98
 wvdial ${WVISP} &> /tmp/pupdial.log &
 [ ! -f /tmp/pupdial.log ] && sleep 1 
 [ ! -f /tmp/pupdial.log ] && sleep 1 
 Xdialog --center --wmclass "pupdial" --backtitle "ВНИМАНИЕ: Если в протоколе указан сбой при подключении,
нажмите, пожалуйста, левую кнопку" --title "PupDial: протокол подключения WvDial" --ok-label "Отключиться" --cancel-label "Закрыть окно" --fixed-font --tailbox /tmp/pupdial.log 30 80
 if [ $? -eq 0 ];then
  rm -f /etc/ppp/peers/wvdial
  [ -f /etc/ppp/peers/wvdial-pipe ] && rm -f /etc/ppp/peers/wvdial-pipe

#v3.98 put this in, now remove...
#  mv -f /etc/ppp/optionsHIDE /etc/ppp/options

  killall wvdial
  killall pppd
  #rm -f /tmp/pupdial.log
  echo '' >> /tmp/pupdial.log
  echo '------------------------------------------------------' >> /tmp/pupdial.log
  echo '' >> /tmp/pupdial.log
  exec pupdial #v3.91 go back to main window.
 fi
fi

###END###
