home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / etc / sysconfig / network / scripts / oldnet2new.sh < prev   
Linux/UNIX/POSIX Shell Script  |  2006-11-29  |  17KB  |  587 lines

  1. #!/bin/bash
  2. #
  3. # oldnet2new.sh
  4. #
  5. # Copyright (c) 2001, 2002 SuSE GmbH Nuernberg, Germany.  All rights reserved.
  6. # This program is free software; you can redistribute it and/or modify it under
  7. # the terms of the GNU General Public License as published by the Free Software
  8. # Foundation; either version 2 of the License, or (at your option) any later
  9. # version.
  10. #
  11. # This program is distributed in the hope that it will be useful, but WITHOUT
  12. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  13. # FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
  14. # details.
  15. #
  16. # You should have received a copy of the GNU General Public License along with
  17. # this program; if not, write to the Free Software Foundation, Inc., 59 Temple
  18. # Place, Suite 330, Boston, MA 02111-1307 USA
  19. #
  20. # Author: Mads Martin J°rgensen <mmj@suse.de>
  21. #         Arvin Schnell <arvin@suse.de>
  22. #
  23. # This script generates the new 8.0 style network config files
  24. # from the old style in /etc/rc.config and others.
  25. #
  26.  
  27. if test -n "$YAST_IS_RUNNING" ; then
  28.     INSSERV="sbin/insserv -f"
  29. else
  30.     INSSERV="sbin/insserv"
  31. fi
  32.  
  33. # source rc.config if it exists
  34. if test -f etc/rc.config; then
  35.     source etc/rc.config
  36. else
  37.     # nothing to do! Feierabend!
  38.     exit 0
  39. fi
  40.  
  41. test -d etc/sysconfig/network || mkdir -p etc/sysconfig/network
  42.  
  43. CFGFILEPREFIX="etc/sysconfig/network/"
  44.  
  45. # good place to convert obsolete iSeries device names... veth --> eth
  46. for i in _0 _1 _2 _3; do
  47.     eval NETDEV=\$NETDEV$i
  48.     case "$NETDEV" in
  49.         veth*)  eval NETDEV$i=\${NETDEV#v};;
  50.     esac
  51. done; unset NETDEV
  52.  
  53.  
  54. #
  55. # go through all network devices configured in rc.config:
  56. #
  57. #          NETDEV_0="eth0"
  58. #          NETDEV_1="eth0:1"
  59. #          NETDEV_2="eth0:2"
  60. #          NETDEV_3="eth0:3"
  61. #          NETDEV_4="eth0:4"
  62. #          NETDEV_5="eth0:5"
  63.  
  64.  
  65. #
  66. # create the filenames of device configurations
  67. #
  68. # NETDEV_10=eth0:10 will be converted to CFGFILE_10=etc/sysconfig/network/ifcfg-eth0:10
  69. #
  70. for i in ${!NETDEV_*}; do
  71.     name=CFGFILE_${i#NETDEV_}
  72.     eval NETDEV=\$$i
  73.     value=${CFGFILEPREFIX}ifcfg-$NETDEV
  74.     eval $name=$value
  75. done; unset NETDEV
  76.  
  77. # convert all device config names for PCMCIA interfaces:
  78. #
  79. # etc/sysconfig/network/ifcfg-eth0:1
  80. # would become
  81. # etc/sysconfig/network/ifcfg-eth-pcmcia-0:1
  82. #
  83. # Note: IP aliases are supported ;-)
  84. #
  85. for i in ${!CFGFILE_*}; do
  86.     name=CFGFILE_PCMCIA_${i#CFGFILE_}
  87.     eval CFGFILE_PCMCIA=\$$i
  88.     tmp1=${CFGFILE_PCMCIA%%[0-9]*}
  89.     tmp2=${CFGFILE_PCMCIA##*[^0-9:]}
  90.     CFGFILE_PCMCIA=$tmp1-pcmcia-$tmp2
  91.     eval $name=$CFGFILE_PCMCIA
  92. done; unset CFGFILE_PCMCIA
  93.  
  94.  
  95. #
  96. # get NETMASK_xyz and BROADCAST_xyz for all interfaces
  97. #
  98. # IFCONFIG_16="192.168.5.245 broadcast 192.168.5.255 netmask 255.255.255.0"
  99. #
  100. function get_ifconfig() {
  101.     shift # IP address comes first
  102.     while [ $1 ]; do
  103.         case $1 in
  104.             netmask)    NETMASK=$2; shift;;
  105.             broadcast)      BROADCAST=$2; shift;;
  106.             pointopoint)    REMOTE_IPADDR=$2; shift;;
  107.             mtu)          MTU=$2; shift;;
  108.         esac
  109.         shift
  110.     done
  111. }
  112. for i in ${!IFCONFIG_*}; do
  113.     eval get_ifconfig \$$i
  114.     eval       NETMASK_${i#IFCONFIG_}=$NETMASK; unset NETMASK
  115.     eval     BROADCAST_${i#IFCONFIG_}=$BROADCAST; unset BROADCAST
  116.     eval REMOTE_IPADDR_${i#IFCONFIG_}=$REMOTE_IPADDR; unset REMOTE_IPADDR
  117.     eval           MTU_${i#IFCONFIG_}=$MTU; unset MTU
  118. done
  119.  
  120.  
  121.  
  122. #
  123. # set default STARTMODE
  124. #
  125. for i in ${!NETDEV_*}; do
  126.     eval STARTMODE_${i#NETDEV_}=manual
  127. done
  128.  
  129. # Mark them hotplug if PCMCIA
  130. for I in $NETCONFIG_PCMCIA ; do
  131.     eval STARTMODE$I="hotplug";
  132. done
  133.  
  134.  
  135. #
  136. # Check for devices that are "activated" in rc.config and mark them such
  137. #
  138. #        #
  139. #        # Networking
  140. #        #
  141. #        # Number of network cards: "_0" for one, "_0 _1 _2 _3" for four cards
  142. #        #
  143. #        NETCONFIG="_0 _1 _2 _3 _4 _5 _6 _7"
  144. #
  145. for I in $NETCONFIG ; do
  146.     eval STARTMODE$I="onboot";
  147. done
  148.  
  149.  
  150. parse_ifconfig () {
  151.     eval IFCFG=\$IFCONFIG$I
  152.     DYNAMICIP="no"
  153.     XXX=0
  154.     NETINDEX=$I
  155.     eval NETMASK$I=""
  156.     for X in $IFCFG ; do
  157.         case $XXX in
  158.             0) ;;
  159.             1) eval NETMASK$I=\$X
  160.                XXX=0 ;;
  161.             2) PTPADDR=$X
  162.                XXX=0 ;;
  163.         esac
  164.         test "$X" = "netmask" && XXX=1
  165.         test "$X" = "pointopoint" && XXX=2
  166.         test "$X" = "dynamic" && DYNAMICIP="yes"
  167.     done
  168.     eval BROADCAST$I=""
  169. }
  170.  
  171. for i in ${!NETDEV_*}; do
  172.     I=_${i#NETDEV_}
  173.     eval NETDEV=\$NETDEV$I;
  174.     case "$NETDEV" in
  175.         ippp*|isdn*)
  176.             eval CFGFILE$I=$CFGFILEPREFIX"tmpcfg-\$NETDEV"
  177.             parse_ifconfig;;
  178.         *)    ;;
  179.     esac
  180.  
  181.     eval        IPADDR=\$IPADDR$I;
  182.     eval     BROADCAST=\$BROADCAST$I;
  183.     eval       NETMASK=\$NETMASK$I;
  184.     eval REMOTE_IPADDR=\$REMOTE_IPADDR$I;
  185.     eval           MTU=\$MTU$I;
  186.     eval  LINK_OPTIONS=\$LINK_OPTIONS$I;
  187.  
  188.     if [ $NETDEV ] && [ "$BROADCAST" != "netmask" ] ; then
  189.         eval CFGFILE=\$CFGFILE$I;
  190.         eval STARTMODE=\$STARTMODE$I;
  191.         if [ "$STARTMODE" = "hotplug" ]; then
  192.             eval CFGFILE=\$CFGFILE_PCMCIA$I;
  193.         fi;
  194.  
  195.         # Check if file already exists, if it does then append .rpmnew
  196.         if [ -f $CFGFILE ] ; then
  197.             CFGFILE=$CFGFILE".rpmnew";
  198.             echo "Config file exists.";
  199.             echo "Using $CFGFILE";
  200.             > $CFGFILE
  201.         else
  202.             echo "Creating $CFGFILE";
  203.         fi;
  204.  
  205.         # Handle the bootprotocol
  206.         eval IFCONFIG=\$IFCONFIG$I;
  207.         case "$IFCONFIG" in
  208.             bootp)
  209.                 echo "BOOTPROTO=dhcp" >> $CFGFILE;
  210.                 ;;
  211.             dhcpclient)
  212.                 echo "BOOTPROTO=dhcp" >> $CFGFILE;
  213.                 ;;
  214.             *)
  215.                 echo "BOOTPROTO=none" >> $CFGFILE;
  216.                 ;;
  217.         esac
  218.  
  219.         # The IP address
  220.         if [ "$IPADDR" ] ; then
  221.             echo "IPADDR=$IPADDR" >> $CFGFILE;
  222.         fi
  223.  
  224.         # The netmask
  225.         [ "$NETMASK" ] && echo "NETMASK=$NETMASK" >> $CFGFILE;
  226.  
  227.         # The broadcast
  228.         [ "$BROADCAST" ] && echo "BROADCAST=$BROADCAST" >> $CFGFILE;
  229.  
  230.         # The pointopoint address
  231.         [ "$REMOTE_IPADDR" ] && echo "REMOTE_IPADDR=$REMOTE_IPADDR" >> $CFGFILE;
  232.  
  233.         # MTU
  234.         [ "$MTU" ] && echo "MTU=$MTU" >> $CFGFILE;
  235.  
  236.         # The Link options linke media type, tunnel, ...
  237.         [ "$LINK_OPTIONS" ] && echo "LINK_OPTIONS=$LINK_OPTIONS" >> $CFGFILE;
  238.  
  239.         # The boot mode
  240.         echo "STARTMODE=$STARTMODE" >> $CFGFILE;
  241.  
  242.         # We need this for pcmcia
  243.         if [ "$STARTMODE" = "hotplug" ]; then
  244.             echo "DHCLIENT_SET_DOWN_LINK=yes" >> $CFGFILE;
  245.         fi;
  246.  
  247.         case "$NETDEV" in
  248.                     ippp*)
  249.                 echo "PROTOCOL=syncppp"  >> $CFGFILE;
  250.                 echo "DYNAMICIP=$DYNAMICIP" >> $CFGFILE;
  251.                 echo "PTPADDR=$PTPADDR" >> $CFGFILE;
  252.                 echo "NETINDEX=$NETINDEX" >> $CFGFILE;
  253.                 ;;
  254.                     isdn*)
  255.                 echo "PROTOCOL=rawip"  >> $CFGFILE;
  256.                 echo "PTPADDR=$PTPADDR" >> $CFGFILE;
  257.                 echo "NETINDEX=$NETINDEX" >> $CFGFILE;
  258.                 ;;
  259.             *) ;;
  260.         esac
  261.         case "$NETDEV" in
  262.             ctc*|escon*)
  263.                 echo "WAIT_FOR_CONNECTION=30" >> $CFGFILE;;
  264.         esac
  265.     fi
  266. done
  267.  
  268. MAINCONFFILE=$CFGFILEPREFIX/config
  269.  
  270. # Handle MODIFY_RESOLV_CONF_DYNAMICALLY
  271. if [ "$MODIFY_RESOLV_CONF_DYNAMICALLY" ]; then
  272.     sed -e \
  273.     "s/^MODIFY_RESOLV_CONF_DYNAMICALLY=.*/MODIFY_RESOLV_CONF_DYNAMICALLY=$MODIFY_RESOLV_CONF_DYNAMICALLY/" \
  274.     $MAINCONFFILE > "$MAINCONFFILE.new"
  275.     if [ -s $MAINCONFFILE.new ]; then
  276.         mv $MAINCONFFILE.new $MAINCONFFILE
  277.     fi;
  278. fi;
  279.  
  280. if [ "$CLOSE_CONNECTIONS" ]; then
  281.     sed -e \
  282.     "s/^CONNECTION_CLOSE_BEFORE_IFDOWN=.*/CONNECTION_CLOSE_BEFORE_IFDOWN=$CLOSE_CONNECTIONS/" \
  283.     $MAINCONFFILE > "$MAINCONFFILE.new"
  284.     if [ -s $MAINCONFFILE.new ]; then
  285.         mv $MAINCONFFILE.new $MAINCONFFILE
  286.     fi;
  287. fi;
  288.  
  289.  
  290. # Handle the dummy device--taken from the old /etc/init.d/dummy script
  291. if [ "$NETCONFIG" != "YAST_ASK" -a "$SETUPDUMMYDEV" = "yes" ] ; then
  292.     dummy=dummy0;
  293.     while read  i j ;
  294.         do test $i = "dummy:" && dummy=dummy;
  295.     done < /proc/net/dev
  296.     ethdev=""
  297.     defdev=""
  298.     ipdef=""
  299.     ipaddr=""
  300.     for dev in $NETCONFIG; do
  301.         eval ndev=\$NETDEV$dev
  302.         if test -z "$defdev" ; then
  303.         eval defdev=\$IPADDR$dev
  304.         ipdef=$defdev
  305.         fi
  306.         case "$ndev" in
  307.         eth*|tr*)
  308.             if test -z "$ethdev" ; then
  309.             eval ethdev=\$IFCONFIG$dev
  310.             eval ipeth=\$IPADDR$dev
  311.             fi
  312.             ;;
  313.         esac
  314.     done
  315.     if test -n "$ethdev" ; then
  316.         dev=$ethdev
  317.         ipaddr=$ipeth
  318.     else
  319.         dev=$defdev
  320.         ipaddr=$ipdef
  321.     fi
  322.  
  323.     if [ "$dev" -a "$dev" != "dhcpclient" ] ; then
  324.         CFGFILE=$CFGFILEPREFIX"ifcfg-$dummy"
  325.  
  326.         echo "BOOTPROTO=none" > $CFGFILE
  327.         echo "IPADR=$ipaddr" > $CFGFILE
  328.         echo "NETMASK=255.255.255.255" > $CFGFILE
  329.         echo "BROADCAST=255.255.255.255" > $CFGFILE
  330.         echo "STARTMODE=onboot" > $CFGFILE
  331.     fi
  332. fi;
  333.  
  334.  
  335. #Handle the hostname
  336. FQHOSTNAME=$FQHOSTNAME""
  337. if [ "$FQHOSTNAME" ] ; then
  338.     echo "$FQHOSTNAME" > etc/HOSTNAME
  339. fi
  340.  
  341.  
  342. #Move /etc/route.conf and notify root to be aware of it
  343. if [ -f etc/route.conf ] ; then
  344.     mv etc/route.conf etc/sysconfig/network/routes
  345.     echo "\
  346. Hi, (Deutsche ▄bersetzung siehe unten)
  347. As a part of the configuration changes made for 8.0 (/etc/sysconfig)
  348. the routing configuration have moved from /etc/route.conf to
  349. /etc/sysconfig/network/routes. Since we also now use the 'ip' com-
  350. mand to setup the routing options etc. have now changed. So if you en-
  351. counter problems with routing please consult the routing documentation
  352. by doing 'man route.conf' and the documentation for the iproute2 pack-
  353. age which can be found in /usr/share/doc/packages/iproute2.
  354. Sorry for any inconvienience.
  355.  
  356. Bedingt durch die Konfigurationsumstellungen fⁿr SuSE Linux 8.0
  357. (/etc/sysconfig) ist die Routing Konfiguration von /etc/route.conf
  358. nach /etc/sysconfig/network/routes umgezogen. Da nun fⁿr die
  359. Einstellungen das Kommando 'ip' verwendet wird, haben sich auch
  360. die Optionen geΣndert. Sollten also Probleme mit dem Routing
  361. auftreten, lesen Sie bitte die Dokumentation per 'man route.conf'
  362. und die Dokumentation zum Paket iproute2 die unter
  363. /usr/share/doc/packages/iproute2 zu finden ist.
  364. " > var/adm/notify/messages/routing_config
  365. fi
  366.  
  367. # Put the Unique number in the config file
  368.  
  369. UNIQUEINFFILE="var/lib/YaST/unique.inf"
  370. if [ -f $UNIQUEINFFILE ]; then
  371. while read inline; do
  372.     case $inline in
  373.         \[network\]*)
  374.             while read netconf; do
  375.                 case $netconf in
  376.                     \[*\]*)
  377.                         break
  378.                         ;;
  379.                     *)
  380.                         UNIQUESTR=`echo $netconf | awk '{print $1}'`
  381.                         CONF=`echo $netconf | awk '{print $2}'`
  382.                         CONFNUMBER=`echo $CONF | awk -F';' '{print $2}'`
  383.                         if [ "$CONFNUMBER" = "" ]; then
  384.                             CONFNUMBER="0";
  385.                         fi;
  386.                         CONFFILE="etc/sysconfig/network/ifcfg-eth"$CONFNUMBER
  387.                         if [ -f $CONFFILE ]; then
  388.                             . $CONFFILE
  389.                             if [ ! $UNIQUE ]; then
  390.                                 echo "UNIQUE='$UNIQUESTR'" >> $CONFFILE
  391.                             fi;
  392.                         fi;
  393.                         ;;
  394.                 esac
  395.             done
  396.         ;;
  397.     esac
  398. done < $UNIQUEINFFILE
  399. fi;
  400.  
  401.  
  402. # Remove stuff from rc.config
  403. if [ -x bin/fillup ] ; then
  404.     bin/fillup -q -t -r -i -d "=" etc/rc.config \
  405.     var/adm/fillup-templates/remove_old_netconfig /dev/null
  406.     test -s etc/rc.config.new && mv etc/rc.config.new etc/rc.config
  407. fi
  408. $INSSERV etc/init.d/network
  409.  
  410.  
  411.  
  412. #
  413. # now turn attention to the dsl and modem config
  414. #
  415.  
  416. function pppoed()
  417. {
  418.     if [ -r etc/pppoed.conf ] ; then
  419.     sed -n -e "s/^$1[ ]*=[ ]*\(.*\)/\1/p" etc/pppoed.conf | \
  420.     sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p"
  421.     else
  422.     sed -n -e "s/^$1[ ]*=[ ]*\(.*\)/\1/p" etc/pppoed.conf.rpmsave | \
  423.     sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p"
  424.     fi
  425. }
  426.  
  427. function wvdial()
  428. {
  429.     sed -n -e "/\[Dialer $1/ {:x;p;n;/\[Dialer/q;bx}" etc/wvdial.conf | \
  430.     sed -n -e "s/^$2[ ]*=[ ]*\(.*\)/\1/p" | \
  431.     sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p"
  432. }
  433.  
  434. function wvdial_bool()
  435. {
  436.     sed -n -e "/\[Dialer $1/ {:x;p;n;/\[Dialer/q;bx}" etc/wvdial.conf | \
  437.     sed -n -e "s/^$2[ ]*=[ ]*\(.*\)/\1/p" | \
  438.     sed -n -e "s/\"*\([^\"]*\)\"*/\"\1\"/p" | \
  439.     sed -n -e "s/\"\(1\|yes\)\"/\"yes\"/p; t; s/.*/\"no\"/p"
  440. }
  441.  
  442.  
  443. # rc.dialout will be renamed later during the update
  444. # since 8.1 this can also happen before this script runs
  445.  
  446. if ( [ -r etc/rc.dialout ] && `grep --quiet "^[^# ]" etc/rc.dialout` ) ||
  447.    ( [ -r etc/rc.dialout.rpmsave ] && `grep --quiet "^[^# ]" etc/rc.dialout.rpmsave` ) ; then
  448.  
  449.     if [ -r etc/rc.dialout ] ; then
  450.     . etc/rc.dialout
  451.     else
  452.     . etc/rc.dialout.rpmsave
  453.     fi
  454.  
  455.     $INSSERV etc/init.d/smpppd
  456.  
  457.     if [ -n "$ADSL_NAME_0" ] && [ -r etc/pppoed.conf -o -r etc/pppoed.conf.rpmsave ] ; then
  458.     if [ ! -r etc/sysconfig/network/ifcfg-dsl0 ] && [ ! -r etc/sysconfig/network/providers/dsl-provider0 ] ; then
  459.  
  460.         echo "# generated during update" > etc/sysconfig/network/ifcfg-dsl0
  461.  
  462.         echo PROVIDER=\"dsl-provider0\" >> etc/sysconfig/network/ifcfg-dsl0
  463.  
  464.         echo STARTMODE=\"manual\" >> etc/sysconfig/network/ifcfg-dsl0
  465.         echo BOOTPROTO=\"none\" >> etc/sysconfig/network/ifcfg-dsl0
  466.  
  467.         echo DEVICE=`pppoed "interface"` >> etc/sysconfig/network/ifcfg-dsl0
  468.         echo PPPMODE=\"pppoe\" >> etc/sysconfig/network/ifcfg-dsl0
  469.  
  470.         echo "# generated during update" > etc/sysconfig/network/providers/dsl-provider0
  471.         chmod 0600 etc/sysconfig/network/providers/dsl-provider0
  472.  
  473.         echo PROVIDER=\"$ADSL_NAME_0\" >> etc/sysconfig/network/providers/dsl-provider0
  474.         echo MODEMSUPPORTED=\"no\" >> etc/sysconfig/network/providers/dsl-provider0
  475.         echo ISDNSUPPORTED=\"no\" >> etc/sysconfig/network/providers/dsl-provider0
  476.         echo DSLSUPPORTED=\"yes\" >> etc/sysconfig/network/providers/dsl-provider0
  477.  
  478.         echo USERNAME=`pppoed "user"` >> etc/sysconfig/network/providers/dsl-provider0
  479.         echo PASSWORD=`pppoed "password"` >> etc/sysconfig/network/providers/dsl-provider0
  480.         echo ASKPASSWORD=\"no\" >> etc/sysconfig/network/providers/dsl-provider0
  481.  
  482.         echo DEMAND=`pppoed "demand"` >> etc/sysconfig/network/providers/dsl-provider0
  483.         echo IDLETIME=`pppoed "idle"` >> etc/sysconfig/network/providers/dsl-provider0
  484.         echo DNS1=`pppoed "dns1"` >> etc/sysconfig/network/providers/dsl-provider0
  485.         echo DNS2=`pppoed "dns2"` >> etc/sysconfig/network/providers/dsl-provider0
  486.  
  487.     fi
  488.     fi
  489.  
  490.     if [ -r etc/wvdial.conf ] && `grep --quiet "\[Dialer modem0\]" etc/wvdial.conf` ; then
  491.     if [ ! -r etc/sysconfig/network/ifcfg-modem0 ] ; then
  492.  
  493.         echo "# generated during update" > etc/sysconfig/network/ifcfg-modem0
  494.  
  495.         echo PROVIDER=\"ppp-provider0\" >> etc/sysconfig/network/ifcfg-modem0
  496.  
  497.         echo STARTMODE=\"manual\" >> etc/sysconfig/network/ifcfg-modem0
  498.         echo BOOTPROTO=\"none\" >> etc/sysconfig/network/ifcfg-modem0
  499.  
  500.         echo MODEM_DEVICE=`wvdial modem0 "Modem"` >> etc/sysconfig/network/ifcfg-modem0
  501.         echo SPEED=`wvdial modem0 "Baud"` >> etc/sysconfig/network/ifcfg-modem0
  502.  
  503.         echo DIALCOMMAND=`wvdial modem0 "Dial Command"` >> etc/sysconfig/network/ifcfg-modem0
  504.         echo DIALPREFIX=`wvdial modem0 "Dial Prefix"` >> etc/sysconfig/network/ifcfg-modem0
  505.         echo INIT1=`wvdial modem0 "Init1"` >> etc/sysconfig/network/ifcfg-modem0
  506.         echo INIT2=`wvdial modem0 "Init2"` >> etc/sysconfig/network/ifcfg-modem0
  507.         echo INIT3=`wvdial modem0 "init3"` >> etc/sysconfig/network/ifcfg-modem0
  508.         echo INIT4=`wvdial modem0 "Init4"` >> etc/sysconfig/network/ifcfg-modem0
  509.         echo INIT5=`wvdial modem0 "Init5"` >> etc/sysconfig/network/ifcfg-modem0
  510.         echo INIT6=`wvdial modem0 "Init6"` >> etc/sysconfig/network/ifcfg-modem0
  511.         echo INIT7=`wvdial modem0 "Init7"` >> etc/sysconfig/network/ifcfg-modem0
  512.         echo INIT8=`wvdial modem0 "Init8"` >> etc/sysconfig/network/ifcfg-modem0
  513.         echo INIT9=`wvdial modem0 "Init9"` >> etc/sysconfig/network/ifcfg-modem0
  514.         echo PPPD_OPTIONS=`wvdial modem0 "PPPD Option"` >> etc/sysconfig/network/ifcfg-modem0
  515.  
  516.         UNIQUEINFFILE="var/lib/YaST/unique.inf"
  517.         if [ -f $UNIQUEINFFILE ]; then
  518.         while read inline; do
  519.             case $inline in
  520.             \[Modem\]*)
  521.                 while read netconf; do
  522.                 case $netconf in
  523.                     \[*\]*)
  524.                     break
  525.                     ;;
  526.                     *)
  527.                     UNIQUESTR=`echo $netconf | awk '{print $1}'`
  528.                     CONF=`echo $netconf | awk '{print $2}'`
  529.                     CONFNUMBER=`echo $CONF | awk -F';' '{print $2}'`
  530.                     if [ "$CONFNUMBER" = "" ]; then
  531.                         CONFNUMBER="0";
  532.                     fi;
  533.                     CONFFILE="etc/sysconfig/network/ifcfg-modem0"
  534.                     if [ -f $CONFFILE ]; then
  535.                         . $CONFFILE
  536.                         if [ ! $UNIQUE ]; then
  537.                         echo "UNIQUE=\"$UNIQUESTR\"" >> $CONFFILE
  538.                         fi;
  539.                     fi;
  540.                     ;;
  541.                 esac
  542.                 done
  543.             ;;
  544.             esac
  545.         done < $UNIQUEINFFILE
  546.         fi
  547.  
  548.     fi
  549.     fi
  550.  
  551.     for i in 0 1 2 3 4 5 6 7 8 9 ; do
  552.  
  553.     NAME=DIALER_NAME_$i
  554.     ENTRY=DIALER_ENTRY_$i
  555.  
  556.     if [ -n "${!NAME}" ] && [ -n "${!ENTRY}" ] && [ -r etc/wvdial.conf ] ; then
  557.         if [ ! -r etc/sysconfig/network/providers/ppp-provider$i ] ; then
  558.  
  559.         echo "# generated during update" > etc/sysconfig/network/providers/ppp-provider$i
  560.         chmod 0600 etc/sysconfig/network/providers/ppp-provider$i
  561.  
  562.         echo PROVIDER=\"${!NAME}\" >> etc/sysconfig/network/providers/ppp-provider$i
  563.         echo MODEMSUPPORTED=\"yes\" >> etc/sysconfig/network/providers/ppp-provider$i
  564.         echo ISDNSUPPORTED=\"no\" >> etc/sysconfig/network/providers/ppp-provider$i
  565.         echo DSLSUPPORTED=\"no\" >> etc/sysconfig/network/providers/ppp-provider$i
  566.  
  567.         echo PHONE=`wvdial ${!ENTRY} "Phone"` >> etc/sysconfig/network/providers/ppp-provider$i
  568.         echo USERNAME=`wvdial ${!ENTRY} "Username"` >> etc/sysconfig/network/providers/ppp-provider$i
  569.         echo PASSWORD=`wvdial ${!ENTRY} "Password"` >> etc/sysconfig/network/providers/ppp-provider$i
  570.         echo ASKPASSWORD=`wvdial_bool ${!ENTRY} "Ask Password"` >> etc/sysconfig/network/providers/ppp-provider$i
  571.  
  572.         echo STUPIDMODE=`wvdial_bool ${!ENTRY} "Stupid Mode"` >> etc/sysconfig/network/providers/ppp-provider$i
  573.         echo COMPUSERVE=`wvdial_bool ${!ENTRY} "Compuserve"` >> etc/sysconfig/network/providers/ppp-provider$i
  574.  
  575.         echo DEMAND=`wvdial_bool ${!ENTRY} "Demand"` >> etc/sysconfig/network/providers/ppp-provider$i
  576.         echo IDLETIME=`wvdial ${!ENTRY} "Idle Seconds"` >> etc/sysconfig/network/providers/ppp-provider$i
  577.         echo DNS1=`wvdial ${!ENTRY} "DNS1"` >> etc/sysconfig/network/providers/ppp-provider$i
  578.         echo DNS2=`wvdial ${!ENTRY} "DNS2"` >> etc/sysconfig/network/providers/ppp-provider$i
  579.  
  580.         fi
  581.     fi
  582.  
  583.     done
  584.  
  585. fi
  586.  
  587.