[pkg-kde-commits] rev 2786 - trunk/packages/kdeadmin/debian/patches

Christopher Martin chrsmrtn at costa.debian.org
Sun Jan 8 00:30:44 UTC 2006


Author: chrsmrtn
Date: 2006-01-08 00:30:43 +0000 (Sun, 08 Jan 2006)
New Revision: 2786

Added:
   trunk/packages/kdeadmin/debian/patches/01_kdeadmin_branch_r495373.diff
Log:
kdeadmin branch pull.


Added: trunk/packages/kdeadmin/debian/patches/01_kdeadmin_branch_r495373.diff
===================================================================
--- trunk/packages/kdeadmin/debian/patches/01_kdeadmin_branch_r495373.diff	2006-01-08 00:29:26 UTC (rev 2785)
+++ trunk/packages/kdeadmin/debian/patches/01_kdeadmin_branch_r495373.diff	2006-01-08 00:30:43 UTC (rev 2786)
@@ -0,0 +1,3227 @@
+#DPATCHLEVEL=0
+--- kuser/kuser.kcfg	(revision 488946)
++++ kuser/kuser.kcfg	(revision 495373)
+@@ -289,7 +289,7 @@
+     </entry>
+     <entry name="samridbase" type="Int">
+       <label>Algorithmic RID base</label>
+-      <whatsthis>This values is an offset for the algorithmic mapping from uids and gids to rids. The default (and minimum) value is 1000, it must be even, and the LDAP database and smb.conf must store the same values.</whatsthis>
++      <whatsthis>This value is an offset for the algorithmic mapping from uids and gids to rids. The default (and minimum) value is 1000, it must be even, and the LDAP database and smb.conf must store the same values.</whatsthis>
+       <default>1000</default>
+     </entry>
+     <entry name="samloginscript" type="String">
+--- lilo-config/qt/standalone.cpp	(revision 488946)
++++ lilo-config/qt/standalone.cpp	(revision 495373)
+@@ -38,9 +38,9 @@
+ 	m=new MainWidget(this);
+ 	connect(m, SIGNAL(configChanged()), SLOT(configChanged()));
+ 	actions=new QHButtonGroup(this);
+-	_whatsthis=new QPushButton(_("&What's this?"), actions);
++	_whatsthis=new QPushButton(_("&What's This?"), actions);
+ 	_whatsthis->setAccel(SHIFT+Key_F1);
+-	QWhatsThis::add(_whatsthis, _("The <i>What's This?</i> button is part of this program's help system. Click on the What's This button, then on any widget in the window to get information (like this) on it."));
++	QWhatsThis::add(_whatsthis, _("The <i>What's This?</i> button is part of this program's help system. Click on the What's This? button then on any widget in the window to get information (like this) on it."));
+ 	connect(_whatsthis, SIGNAL(clicked()), SLOT(whatsthis()));
+ 	_help=new QPushButton(_("&Help"), actions);
+ 	_help->setAccel(Key_F1);
+--- kpackage/main.cpp	(revision 488946)
++++ kpackage/main.cpp	(revision 495373)
+@@ -92,6 +92,11 @@
+   kpkg = 0;
+   int j = 0;
+ 
++// Make sure PATH has the right directories in it
++  QCString path = getenv("PATH");
++  path = "PATH=" + path + ":/sbin:/usr/sbin:/usr/local/bin";
++  putenv(strdup(path.data()));
++	 
+   KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+   QString remoteHost = args->getOption("remote");
+ 
+--- knetworkconf/pixmaps/Makefile.am	(revision 488946)
++++ knetworkconf/pixmaps/Makefile.am	(revision 495373)
+@@ -1,5 +1,7 @@
+ iconsdir = $(kde_datadir)/knetworkconf/pixmaps/
+-icons_DATA = ark.png debian.png mandrake.png blackpanther.png pld.png redhat.png suse.png turbolinux.png conectiva.png fedora.png openna.png slackware.png freebsd.png gentoo.png vine.png specifix.png kubuntu.png yoper.png
++icons_DATA = ark.png debian.png mandrake.png blackpanther.png pld.png \
++	redhat.png suse.png turbolinux.png conectiva.png fedora.png openna.png \
++	slackware.png freebsd.png gentoo.png vine.png kubuntu.png yoper.png rpath.png
+ 
+ # Install the icons into the global KDE directories
+ KDE_ICON = network_connected_lan_knc network_disconnected_lan network_disconnected_wlan network_traffic_wlan 
+--- knetworkconf/knetworkconf/kadddevicedlgextension.ui	(revision 488946)
++++ knetworkconf/knetworkconf/kadddevicedlgextension.ui	(revision 495373)
+@@ -8,14 +8,14 @@
+         <rect>
+             <x>0</x>
+             <y>0</y>
+-            <width>322</width>
+-            <height>108</height>
++            <width>298</width>
++            <height>131</height>
+         </rect>
+     </property>
+     <property name="caption">
+         <string>Advanced Options</string>
+     </property>
+-    <vbox>
++    <hbox>
+         <property name="name">
+             <cstring>unnamed</cstring>
+         </property>
+@@ -44,14 +44,6 @@
+                         <string>IP address of the network device</string>
+                     </property>
+                 </widget>
+-                <widget class="QLabel" row="1" column="0">
+-                    <property name="name">
+-                        <cstring>textLabel1_2_2</cstring>
+-                    </property>
+-                    <property name="text">
+-                        <string>Broadcast:</string>
+-                    </property>
+-                </widget>
+                 <widget class="KLineEdit" row="0" column="1">
+                     <property name="name">
+                         <cstring>kleDescription</cstring>
+@@ -80,9 +72,48 @@
+                         <string>The Broadcast is a special address. All devices of a network respond if packages are sent to this address.</string>
+                     </property>
+                 </widget>
++                <widget class="QLabel" row="2" column="0">
++                    <property name="name">
++                        <cstring>TextLabel1_3</cstring>
++                    </property>
++                    <property name="text">
++                        <string>Gateway:</string>
++                    </property>
++                    <property name="buddy" stdset="0">
++                        <cstring>kleGateway</cstring>
++                    </property>
++                    <property name="toolTip" stdset="0">
++                        <string>An IP address is an unique identifier of a networking device in an TCP/IP network</string>
++                    </property>
++                    <property name="whatsThis" stdset="0">
++                        <string>An IP address is an unique identifier of a networking device in an TCP/IP network</string>
++                    </property>
++                </widget>
++                <widget class="KLineEdit" row="2" column="1">
++                    <property name="name">
++                        <cstring>kleGateway</cstring>
++                    </property>
++                    <property name="text">
++                        <string></string>
++                    </property>
++                    <property name="toolTip" stdset="0">
++                        <string>Default gateway for the network device</string>
++                    </property>
++                    <property name="whatsThis" stdset="0">
++                        <string>&lt;p&gt;Here you should enter the default gateway for the network device.&lt;/p&gt;</string>
++                    </property>
++                </widget>
++                <widget class="QLabel" row="1" column="0">
++                    <property name="name">
++                        <cstring>textLabel1_2_2</cstring>
++                    </property>
++                    <property name="text">
++                        <string>Broadcast:</string>
++                    </property>
++                </widget>
+             </grid>
+         </widget>
+-    </vbox>
++    </hbox>
+ </widget>
+ <connections>
+     <connection>
+@@ -97,6 +128,12 @@
+         <receiver>KAddDeviceDlgExtension</receiver>
+         <slot>valueChanged(const QString&amp;)</slot>
+     </connection>
++    <connection>
++        <sender>kleGateway</sender>
++        <signal>textChanged(const QString&amp;)</signal>
++        <receiver>KAddDeviceDlgExtension</receiver>
++        <slot>valueChanged(const QString&amp;)</slot>
++    </connection>
+ </connections>
+ <includes>
+     <include location="local" impldecl="in implementation">kadddevicedlgextension.ui.h</include>
+@@ -114,5 +151,6 @@
+ <includehints>
+     <includehint>klineedit.h</includehint>
+     <includehint>klineedit.h</includehint>
++    <includehint>klineedit.h</includehint>
+ </includehints>
+ </UI>
+--- knetworkconf/knetworkconf/kadddevicedlg.ui	(revision 488946)
++++ knetworkconf/knetworkconf/kadddevicedlg.ui	(revision 495373)
+@@ -10,8 +10,8 @@
+         <rect>
+             <x>0</x>
+             <y>0</y>
+-            <width>245</width>
+-            <height>154</height>
++            <width>299</width>
++            <height>167</height>
+         </rect>
+     </property>
+     <property name="sizePolicy">
+@@ -70,9 +70,9 @@
+                 <property name="name">
+                     <cstring>unnamed</cstring>
+                 </property>
+-                <spacer row="3" column="0">
++                <spacer row="1" column="2" rowspan="1" colspan="3">
+                     <property name="name">
+-                        <cstring>spacer11_2</cstring>
++                        <cstring>Spacer4</cstring>
+                     </property>
+                     <property name="orientation">
+                         <enum>Horizontal</enum>
+@@ -82,15 +82,36 @@
+                     </property>
+                     <property name="sizeHint">
+                         <size>
+-                            <width>16</width>
++                            <width>130</width>
+                             <height>20</height>
+                         </size>
+                     </property>
+                 </spacer>
+-                <spacer row="2" column="0">
++                <widget class="KComboBox" row="0" column="3">
++                    <item>
++                        <property name="text">
++                            <string>dhcp</string>
++                        </property>
++                    </item>
++                    <item>
++                        <property name="text">
++                            <string>bootp</string>
++                        </property>
++                    </item>
+                     <property name="name">
+-                        <cstring>spacer10_2</cstring>
++                        <cstring>kcbAutoBootProto</cstring>
+                     </property>
++                    <property name="toolTip" stdset="0">
++                        <string>The boot protocol this network device should use</string>
++                    </property>
++                    <property name="whatsThis" stdset="0">
++                        <string>The boot protocol this network device should use</string>
++                    </property>
++                </widget>
++                <spacer row="0" column="4">
++                    <property name="name">
++                        <cstring>spacer5</cstring>
++                    </property>
+                     <property name="orientation">
+                         <enum>Horizontal</enum>
+                     </property>
+@@ -99,42 +120,45 @@
+                     </property>
+                     <property name="sizeHint">
+                         <size>
+-                            <width>16</width>
++                            <width>50</width>
+                             <height>20</height>
+                         </size>
+                     </property>
+                 </spacer>
+-                <widget class="QLabel" row="3" column="1">
++                <widget class="QRadioButton" row="1" column="0" rowspan="1" colspan="2">
+                     <property name="name">
+-                        <cstring>TextLabel1_2</cstring>
++                        <cstring>rbBootProtoManual</cstring>
+                     </property>
+                     <property name="text">
+-                        <string>Netmask:</string>
++                        <string>Manual:</string>
+                     </property>
+                     <property name="toolTip" stdset="0">
+-                        <string>The netmask defines a range of IP numbers which will build a subnet inside the network.</string>
++                        <string>Use a static IP address. Use the fields below to enter the values</string>
+                     </property>
+                     <property name="whatsThis" stdset="0">
+-                        <string>The netmask defines a range of IP numbers which will build a subnet inside the network.</string>
++                        <string>&lt;p&gt;Sets this interface to use static IP settings.&lt;/p&gt;
++&lt;p&gt;In this case, please use the fields below to enter the desired values manually.&lt;/p&gt;</string>
+                     </property>
+                 </widget>
+-                <widget class="QLabel" row="2" column="1">
++                <widget class="QRadioButton" row="0" column="0" rowspan="1" colspan="2">
+                     <property name="name">
+-                        <cstring>TextLabel1</cstring>
++                        <cstring>rbBootProtoAuto</cstring>
+                     </property>
+                     <property name="text">
+-                        <string>IP address:</string>
++                        <string>Automatic:</string>
+                     </property>
+                     <property name="toolTip" stdset="0">
+-                        <string>An IP address is an unique identifier of a networking device in an TCP/IP network</string>
++                        <string>Use a dynamic IP address</string>
+                     </property>
+                     <property name="whatsThis" stdset="0">
+-                        <string>An IP address is an unique identifier of a networking device in an TCP/IP network</string>
++                        <string>&lt;p&gt;Using an dynamic IP address causes this device to get a free IP address automatically.&lt;/p&gt;
++&lt;p&gt;The interface will try to contact an DHCP- or BOOTP-Server during the boot process.&lt;/p&gt;
++&lt;p&gt;Rendevouz is not supported yet.&lt;/p&gt;</string>
+                     </property>
+                 </widget>
+-                <spacer row="2" column="2">
++                <spacer row="0" column="2">
+                     <property name="name">
+-                        <cstring>spacer10</cstring>
++                        <cstring>spacer9</cstring>
+                     </property>
+                     <property name="orientation">
+                         <enum>Horizontal</enum>
+@@ -149,42 +173,22 @@
+                         </size>
+                     </property>
+                 </spacer>
+-                <spacer row="3" column="2">
++                <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="5">
+                     <property name="name">
+-                        <cstring>spacer11</cstring>
++                        <cstring>kcbstartAtBoot</cstring>
+                     </property>
+-                    <property name="orientation">
+-                        <enum>Horizontal</enum>
++                    <property name="enabled">
++                        <bool>true</bool>
+                     </property>
+-                    <property name="sizeType">
+-                        <enum>Expanding</enum>
+-                    </property>
+-                    <property name="sizeHint">
+-                        <size>
+-                            <width>16</width>
+-                            <height>20</height>
+-                        </size>
+-                    </property>
+-                </spacer>
+-                <widget class="KLineEdit" row="2" column="3" rowspan="1" colspan="2">
+-                    <property name="name">
+-                        <cstring>kleIPAddress</cstring>
+-                    </property>
+                     <property name="text">
+-                        <string></string>
++                        <string>Activate when the computer starts</string>
+                     </property>
+                     <property name="toolTip" stdset="0">
+-                        <string>IP address for the network device</string>
++                        <string>Ensures that this interface gets activated during boot time</string>
+                     </property>
+                     <property name="whatsThis" stdset="0">
+-                        <string>&lt;p&gt;Here you should enter the IP address for the network interface.&lt;/p&gt;
+-&lt;p&gt;Please note: If your network is connected to the internet, you should only enter IP addresses you have been given by your provider.&lt;/p&gt;
+-&lt;p&gt;Otherwise, you should enter one of the IP addresses which are explicitly reserved for private use.&lt;/p&gt;
+-&lt;p&gt;Most small private networks use class C networks, which allow up to 255 computers in your network. So simply use addresses like 192.168.1.1, 192.168.1.2, 192.168.1.171 and so on for your computers.&lt;/p&gt;
+-&lt;p&gt;Cass C networks: 192.168.0.0 to 192.168.255.25, for example 192.168.0.13.&lt;/p&gt;
+-&lt;p&gt;Class B networks: 172.16.0.0 to 172.31.255.255, for example 172.28.2.5&lt;/p&gt;
+-&lt;p&gt;Class A networks: 10.0.0.0 to 10.255.255.255, for example 10.5.12.14&lt;/p&gt;
+-&lt;p&gt;Please ensure that all IP addresses you give to your computers are unique; you will have many problems if the same address is assigned to more than one network device.&lt;/p&gt;</string>
++                        <string>&lt;p&gt;Ensures that this interface gets activated during boot time.&lt;/p&gt;
++&lt;p&gt;Otherwise, you will have to active the interface manually after you have logged in after the boot process.&lt;/p&gt;</string>
+                     </property>
+                 </widget>
+                 <widget class="KComboBox" row="3" column="3" rowspan="1" colspan="2">
+@@ -238,9 +242,9 @@
+ &lt;p&gt;This field will change from a popup box to a combo box as soon as you enable the advanced settings below.&lt;/p&gt;</string>
+                     </property>
+                 </widget>
+-                <spacer row="1" column="2" rowspan="1" colspan="3">
++                <spacer row="3" column="0">
+                     <property name="name">
+-                        <cstring>Spacer4</cstring>
++                        <cstring>spacer11_2</cstring>
+                     </property>
+                     <property name="orientation">
+                         <enum>Horizontal</enum>
+@@ -250,36 +254,15 @@
+                     </property>
+                     <property name="sizeHint">
+                         <size>
+-                            <width>130</width>
++                            <width>16</width>
+                             <height>20</height>
+                         </size>
+                     </property>
+                 </spacer>
+-                <widget class="KComboBox" row="0" column="3">
+-                    <item>
+-                        <property name="text">
+-                            <string>dhcp</string>
+-                        </property>
+-                    </item>
+-                    <item>
+-                        <property name="text">
+-                            <string>bootp</string>
+-                        </property>
+-                    </item>
++                <spacer row="3" column="2">
+                     <property name="name">
+-                        <cstring>kcbAutoBootProto</cstring>
++                        <cstring>spacer11</cstring>
+                     </property>
+-                    <property name="toolTip" stdset="0">
+-                        <string>The boot protocol this network device should use</string>
+-                    </property>
+-                    <property name="whatsThis" stdset="0">
+-                        <string>The boot protocol this network device should use</string>
+-                    </property>
+-                </widget>
+-                <spacer row="0" column="4">
+-                    <property name="name">
+-                        <cstring>spacer5</cstring>
+-                    </property>
+                     <property name="orientation">
+                         <enum>Horizontal</enum>
+                     </property>
+@@ -288,45 +271,49 @@
+                     </property>
+                     <property name="sizeHint">
+                         <size>
+-                            <width>50</width>
++                            <width>16</width>
+                             <height>20</height>
+                         </size>
+                     </property>
+                 </spacer>
+-                <widget class="QRadioButton" row="1" column="0" rowspan="1" colspan="2">
++                <widget class="QLabel" row="3" column="1">
+                     <property name="name">
+-                        <cstring>rbBootProtoManual</cstring>
++                        <cstring>TextLabel1_2</cstring>
+                     </property>
+                     <property name="text">
+-                        <string>Manual:</string>
++                        <string>Netmask:</string>
+                     </property>
+                     <property name="toolTip" stdset="0">
+-                        <string>Use a static IP address. Use the fields below to enter the values</string>
++                        <string>The netmask defines a range of IP numbers which will build a subnet inside the network.</string>
+                     </property>
+                     <property name="whatsThis" stdset="0">
+-                        <string>&lt;p&gt;Sets this interface to use static IP settings.&lt;/p&gt;
+-&lt;p&gt;In this case, please use the fields below to enter the desired values manually.&lt;/p&gt;</string>
++                        <string>The netmask defines a range of IP numbers which will build a subnet inside the network.</string>
+                     </property>
+                 </widget>
+-                <widget class="QRadioButton" row="0" column="0" rowspan="1" colspan="2">
++                <widget class="KLineEdit" row="2" column="3" rowspan="1" colspan="2">
+                     <property name="name">
+-                        <cstring>rbBootProtoAuto</cstring>
++                        <cstring>kleIPAddress</cstring>
+                     </property>
+                     <property name="text">
+-                        <string>Automatic:</string>
++                        <string></string>
+                     </property>
+                     <property name="toolTip" stdset="0">
+-                        <string>Use a dynamic IP address</string>
++                        <string>IP address for the network device</string>
+                     </property>
+                     <property name="whatsThis" stdset="0">
+-                        <string>&lt;p&gt;Using an dynamic IP address causes this device to get a free IP address automatically.&lt;/p&gt;
+-&lt;p&gt;The interface will try to contact an DHCP- or BOOTP-Server during the boot process.&lt;/p&gt;
+-&lt;p&gt;Rendevouz is not supported yet.&lt;/p&gt;</string>
++                        <string>&lt;p&gt;Here you should enter the IP address for the network interface.&lt;/p&gt;
++&lt;p&gt;Please note: If your network is connected to the internet, you should only enter IP addresses you have been given by your provider.&lt;/p&gt;
++&lt;p&gt;Otherwise, you should enter one of the IP addresses which are explicitly reserved for private use.&lt;/p&gt;
++&lt;p&gt;Most small private networks use class C networks, which allow up to 255 computers in your network. So simply use addresses like 192.168.1.1, 192.168.1.2, 192.168.1.171 and so on for your computers.&lt;/p&gt;
++&lt;p&gt;Cass C networks: 192.168.0.0 to 192.168.255.25, for example 192.168.0.13.&lt;/p&gt;
++&lt;p&gt;Class B networks: 172.16.0.0 to 172.31.255.255, for example 172.28.2.5&lt;/p&gt;
++&lt;p&gt;Class A networks: 10.0.0.0 to 10.255.255.255, for example 10.5.12.14&lt;/p&gt;
++&lt;p&gt;Please ensure that all IP addresses you give to your computers are unique; you will have many problems if the same address is assigned to more than one network device.&lt;/p&gt;</string>
+                     </property>
+                 </widget>
+-                <spacer row="0" column="2">
++                <spacer row="2" column="2">
+                     <property name="name">
+-                        <cstring>spacer9</cstring>
++                        <cstring>spacer10</cstring>
+                     </property>
+                     <property name="orientation">
+                         <enum>Horizontal</enum>
+@@ -341,31 +328,44 @@
+                         </size>
+                     </property>
+                 </spacer>
+-                <widget class="QCheckBox" row="4" column="0" rowspan="1" colspan="5">
++                <widget class="QLabel" row="2" column="1">
+                     <property name="name">
+-                        <cstring>kcbstartAtBoot</cstring>
++                        <cstring>TextLabel1</cstring>
+                     </property>
+-                    <property name="enabled">
+-                        <bool>true</bool>
+-                    </property>
+                     <property name="text">
+-                        <string>Activate when the computer starts</string>
++                        <string>IP address:</string>
+                     </property>
+                     <property name="toolTip" stdset="0">
+-                        <string>Ensures that this interface gets activated during boot time</string>
++                        <string>An IP address is an unique identifier of a networking device in an TCP/IP network</string>
+                     </property>
+                     <property name="whatsThis" stdset="0">
+-                        <string>&lt;p&gt;Ensures that this interface gets activated during boot time.&lt;/p&gt;
+-&lt;p&gt;Otherwise, you will have to active the interface manually after you have logged in after the boot process.&lt;/p&gt;</string>
++                        <string>An IP address is an unique identifier of a networking device in an TCP/IP network</string>
+                     </property>
+                 </widget>
++                <spacer row="2" column="0">
++                    <property name="name">
++                        <cstring>spacer10_2</cstring>
++                    </property>
++                    <property name="orientation">
++                        <enum>Horizontal</enum>
++                    </property>
++                    <property name="sizeType">
++                        <enum>Expanding</enum>
++                    </property>
++                    <property name="sizeHint">
++                        <size>
++                            <width>16</width>
++                            <height>20</height>
++                        </size>
++                    </property>
++                </spacer>
+             </grid>
+         </widget>
+     </hbox>
+ </widget>
+ <images>
+     <image name="image0">
+-        <data format="PNG" length="789">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002dc494441541895ed953f881c551cc73f77f79417988419509807296e20ca2d88ba7b09648514b7100857990b69fc53b8d7e5fc53d819cb04d28be99254bb6062568c70290e6ebb150cdca231792709cc6a1666c4c179c5c0fe8a81b5b88b4ad8d1e2c0ca5ff378ff3e7ce1f37e3cf8bff66bae6ae3cb9b0f7e9547327de7e2f29bfa0c0ffcf380ec6faabd410394fbf3727fa1603afa8842558125499f88a797c333fa4aeb93f0e5e8858038138c179167101413b6551fe3415ef868df479c90e0042567e7abc0ddadce9d9008b43efcf1a90dd3f2eba613d7ccc6589b8dc50b66722f32fa1826f1306f9f5c35c68b4cebf89a914c4794bc5699b87df65335ca7234ba8c49894c83db2706049ecf4ed9a3f19ec1954d5afe2adc3548d921a9a704be4f8a9bab04bb3227442308068d9b68dc31b0ce214ab099a5ee19e251423e8ab1654cf39421cf0414d34a70e81946ce42a0f11f251c5a6cb29d399ab2862d2c511861b39895a36f30aa3b1a5e0351b0e96d4209aacabe2d769e078394b2108c5336a58b3e1a32bc95607d8bff529343bacd30ed93f427586d59fd601529f65e89aab2efbceb87f331ac47f557cfc936c669f2b1263a61885d82b63bb8dd75e47487c92b201a821f03b4af01165477ab73e7c2e94bcb4fedbbc4d2bae78803c897da5cbbd17b8e77fbc485b0bef416837142ebf526d7ee77496f5cfe81afb88f621ea0470f4ae6814c1dc87ee6be23e3c3bf5a06d86bbaa93aa0fd9f2999cc92af0e68ff97a7099f05cfa7454248888860c68ec1e32ebeb788fd26c70e2d761482b4198e863cec3fa4b3759b899efc697f16f46f8973b486eda508e3d588b301adf3357abb97a98fdb0c9fa4b8da6cfb557da0f6126b2858386742c8635a51037efb96c1ca452eddfa9cab9ff5ef02bfcfb25f098e5eac69eb864842b17ef57a5153a8b8d0d348fba40a06630b8fb9097c31cb7e1578ae79726dc53979dfee6e7e0da4c091672e2c003f01df5741fea98e00c1bf9ca9fc14fed3fa03e7509759851b126b0000000049454e44ae426082</data>
++        <data format="PNG" length="789">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000002dc49444154388ded953f881c551cc73f77f79417988419509807296e20ca2d88ba7b09648514b7100857990b69fc53b8d7e5fc53d819cb04d28be99254bb6062568c70290e6ebb150cdca231792709cc6a1666c4c179c5c0fe8a81b5b88b4ad8d1e2c0ca5ff378ff3e7ce1f37e3cf8bff66bae6ae3cb9b0f7e9547327de7e2f29bfa0c0ffcf380ec6faabd410394fbf3727fa1603afa8842558125499f88a797c333fa4aeb93f0e5e8858038138c179167101413b6551fe3415ef868df479c90e0042567e7abc0ddadce9d9008b43efcf1a90dd3f2eba613d7ccc6589b8dc50b66722f32fa1826f1306f9f5c35c68b4cebf89a914c4794bc5699b87df65335ca7234ba8c49894c83db2706049ecf4ed9a3f19ec1954d5afe2adc3548d921a9a704be4f8a9bab04bb3227442308068d9b68dc31b0ce214ab099a5ee19e251423e8ab1654cf39421cf0414d34a70e81946ce42a0f11f251c5a6cb29d399ab2862d2c511861b39895a36f30aa3b1a5e0351b0e96d4209aacabe2d769e078394b2108c5336a58b3e1a32bc95607d8bff529343bacd30ed93f427586d59fd601529f65e89aab2efbceb87f331ac47f557cfc936c669f2b1263a61885d82b63bb8dd75e47487c92b201a821f03b4af01165477ab73e7c2e94bcb4fedbbc4d2bae78803c897da5cbbd17b8e77fbc485b0bef416837142ebf526d7ee77496f5cfe81afb88f621ea0470f4ae6814c1dc87ee6be23e3c3bf5a06d86bbaa93aa0fd9f2999cc92af0e68ff97a7099f05cfa7454248888860c68ec1e32ebeb788fd26c70e2d761482b4198e863cec3fa4b3759b899efc697f16f46f8973b486eda508e3d588b301adf3357abb97a98fdb0c9fa4b8da6cfb557da0f6126b2858386742c8635a51037efb96c1ca452eddfa9cab9ff5ef02bfcfb25f098e5eac69eb864842b17ef57a5153a8b8d0d348fba40a06630b8fb9097c31cb7e1578ae79726dc53979dfee6e7e0da4c091672e2c003f01df5741fea98e00c1bf9ca9fc14fed3fa03e75097599478d74a0000000049454e44ae426082</data>
+     </image>
+ </images>
+ <connections>
+@@ -404,8 +404,8 @@
+ </functions>
+ <layoutdefaults spacing="6" margin="11"/>
+ <includehints>
+-    <includehint>klineedit.h</includehint>
+     <includehint>kcombobox.h</includehint>
+     <includehint>kcombobox.h</includehint>
++    <includehint>klineedit.h</includehint>
+ </includehints>
+ </UI>
+--- knetworkconf/knetworkconf/knetworkconf.cpp	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkconf.cpp	(revision 495373)
+@@ -63,7 +63,7 @@
+   if (netInfo == NULL)
+   {
+     KMessageBox::error(this,
+-                        i18n("Could not load network info."),
++                        i18n("Could not load network configuration information."),
+                         i18n("Error Reading Configuration File"));
+     //kapp->quit();
+     //exit(1);
+@@ -263,7 +263,12 @@
+     }
+     configDlg.addDlg->kleIPAddress->setText(dev->getIpAddress());
+     advancedOptions->kleDescription->setText(dev->getDescription());
+-    advancedOptions->kleBroadcast->setText(dev->getBroadcast());
++    if (!dev->getBroadcast().isEmpty())
++      advancedOptions->kleBroadcast->setText(dev->getBroadcast());
++    else
++      advancedOptions->kleBroadcast->setText(KAddressValidator::calculateBroadcast(dev->getIpAddress(),dev->getNetmask()));
++      
++    advancedOptions->kleGateway->setText(dev->getGateway());
+ 
+     if (!dev->getNetmask().isEmpty())
+       configDlg.addDlg->kcbNetmask->setCurrentText(dev->getNetmask());
+@@ -297,7 +302,7 @@
+       if(configDlg.addDlg->rbBootProtoManual->isChecked())
+       {
+         item->setText(2,i18n("Manual"));
+-	dev->setBootProto("none");
++	      dev->setBootProto("none");
+       }
+       //If the selected boot protocol is dhcp or bootp (Auto), then we don't need the
+       //past IP address, netmask, network and broadcast, as a new one will be assigned by
+@@ -308,6 +313,7 @@
+         {
+           dev->setIpAddress("");
+           configDlg.addDlg->kleIPAddress->setText("");
++          dev->setGateway("");
+           dev->setNetmask("");
+           dev->setNetwork("");
+           dev->setBroadcast("");
+@@ -322,18 +328,18 @@
+                         configDlg.addDlg->kcbAutoBootProto->currentText(),
+                         configDlg.addDlg->kcbNetmask->currentText(),
+                         configDlg.addDlg->kleIPAddress->text(),
++                        advancedOptions->kleGateway->text(),
+                         configDlg.addDlg->kcbstartAtBoot->isChecked(),
+-	 		advancedOptions->kleDescription->text(),
+-		  	advancedOptions->kleBroadcast->text()))
++	 		                  advancedOptions->kleDescription->text(),
++		  	                advancedOptions->kleBroadcast->text()))
+         {
+           dev->setIpAddress(configDlg.addDlg->kleIPAddress->text().stripWhiteSpace());
++          dev->setGateway(advancedOptions->kleGateway->text().stripWhiteSpace());
+           dev->setNetmask(configDlg.addDlg->kcbNetmask->currentText().stripWhiteSpace());
+           QString network = KAddressValidator::calculateNetwork(dev->getIpAddress().stripWhiteSpace(),dev->getNetmask().stripWhiteSpace());
+           dev->setNetwork(network);
+-          QString broadcast;
+-          if (configDlg.advanced())
+-	          broadcast = advancedOptions->kleBroadcast->text().stripWhiteSpace();
+-        else
++          QString broadcast = advancedOptions->kleBroadcast->text().stripWhiteSpace();
++          if (broadcast.isEmpty())
+             broadcast = KAddressValidator::calculateBroadcast(dev->getIpAddress().stripWhiteSpace(),dev->getNetmask().stripWhiteSpace());
+           dev->setBroadcast(broadcast);
+           dev->setDescription(advancedOptions->kleDescription->text());
+@@ -398,21 +404,36 @@
+ /** Loads the info about the default gateway and host and domain names. */
+ void KNetworkConf::loadRoutingInfo(){
+   //routingInfo = config->getNetworkInfoSlot();
+-  if (routingInfo == NULL)
+-    KMessageBox::error(this,i18n("Could not open file '/etc/sysconfig/network' for reading."),
+-                        i18n("Error Loading Config Files"));
++  if (!routingInfo->getGateway().isEmpty())
++    kleDefaultRoute->setText(routingInfo->getGateway());
+   else
+   {
+-    kleDefaultRoute->setText(routingInfo->getGateway());
+-    kcbGwDevice->clear();
+-    kcbGwDevice->insertStringList(deviceNamesList);
+-    if (!routingInfo->getGatewayDevice().isEmpty())
+-      kcbGwDevice->setCurrentText(routingInfo->getGatewayDevice());
+-/*    if (routingInfo->isForwardIPv4Enabled().compare("yes") == 0)
++    //Take the default gateway from the gateway field of the default gateway interface
++    //because some platforms (Debian-like ones) seems that don't handle the concept of a default 
++    //gateway, instead a gateway per interface.
++    KNetworkInterface *device;
++    QString defaultGwDevice = routingInfo->getGatewayDevice();
++    QPtrList<KNetworkInterface> deviceList = netInfo->getDeviceList();
++    for (device = deviceList.first(); device; device = deviceList.next())
++    {  
++      if ( device->getDeviceName() == defaultGwDevice )
++      {
++        if ( !device->getGateway().isEmpty() )  
++        {
++          kleDefaultRoute->setText(device->getGateway());
++        }
++      }
++    }    
++  }  
++    
++  kcbGwDevice->clear();
++  kcbGwDevice->insertStringList(deviceNamesList);
++  if (!routingInfo->getGatewayDevice().isEmpty())
++    kcbGwDevice->setCurrentText(routingInfo->getGatewayDevice());
++/*  if (routingInfo->isForwardIPv4Enabled().compare("yes") == 0)
+       cbEnableRouting->setChecked(true);
+     else
+       cbEnableRouting->setChecked(false);*/
+-  }
+ }
+ 
+ void KNetworkConf::loadDNSInfo(){
+@@ -590,6 +611,24 @@
+     netInfo->setRoutingInfo(routingInfo);
+     netInfo->setDNSInfo(dnsInfo);
+ 
++    //Add the default gateway to the gateway field of the default gateway interface
++    //because some platforms (Debian-like ones) get the default gateway from there 
++    //instead from the default gateway field. funny huh?
++    KNetworkInterface *device;
++    QString defaultGwDevice = routingInfo->getGatewayDevice();
++    QString defaultGwAddress = routingInfo->getGateway();
++    QPtrList<KNetworkInterface> deviceList = netInfo->getDeviceList();
++    for (device = deviceList.first(); device; device = deviceList.next())
++    {  
++      if ( device->getGateway().length() == 0 )
++      {
++        if ( device->getDeviceName() == defaultGwDevice )  
++        {
++          device->setGateway(defaultGwAddress);
++        }
++      }
++    }  
++    
+     config->saveNetworkInfo(netInfo);
+     modified = false;
+   }
+@@ -752,12 +791,14 @@
+                                   QString bootProto,
+                                   QString netmask,
+                                   QString ipAddr,
++                                  QString gateway,
+                                   bool onBoot,
+                                   QString desc,
+ 				  QString broadcast){
+   if ((dev->getBootProto() != bootProto) ||
+       (dev->getNetmask() != netmask) ||
+       (dev->getIpAddress() != ipAddr) ||
++      (dev->getGateway() != gateway) ||
+       ((dev->getOnBoot() == "yes") && !(onBoot)) ||
+       ((dev->getOnBoot() == "no") && (onBoot)) ||
+       (dev->getDescription() != desc) ||
+@@ -1058,9 +1099,9 @@
+   QListViewItem *item= klvProfilesList->selectedItem();
+   if (item != NULL)
+   {
+-    if (KMessageBox::warningContinueCancel(this,
++/*    if (KMessageBox::warningContinueCancel(this,
+                         i18n("Are you sure you want to delete the selected network profile?"),
+-                        i18n("Delete Profile"),KStdGuiItem::del()) == KMessageBox::Continue)
++                        i18n("Delete Profile"),KStdGuiItem::del()) == KMessageBox::Continue)*/
+     {                    
+       QString selectedProfile = item->text(0);
+       QPtrList<KNetworkInfo> profiles = netInfo->getProfilesList();
+@@ -1091,6 +1132,7 @@
+     QString selectedProfile = item->text(0);
+     QPtrList<KNetworkInfo> profiles = netInfo->getProfilesList();
+     KNetworkInfo *profileToUpdate = NULL;
++    KNetworkInfo *newProfile = new KNetworkInfo();
+   
+     for ( profileToUpdate = profiles.first(); profileToUpdate; profileToUpdate = profiles.next() )
+     {
+@@ -1098,11 +1140,20 @@
+       if (profileName == selectedProfile)
+       { 
+         qDebug("profile updated");
++        newProfile->setProfileName(profileName);
++        newProfile->setDNSInfo(netInfo->getDNSInfo());
++        newProfile->setDeviceList(netInfo->getDeviceList());
++        newProfile->setNetworkScript(netInfo->getNetworkScript());
++        newProfile->setPlatformName(netInfo->getPlatformName());
++        newProfile->setProfilesList(netInfo->getProfilesList());
++        newProfile->setRoutingInfo(netInfo->getRoutingInfo());
++  
++        
+         profileToUpdate = netInfo;   
+         int curPos = profiles.at();
+-        profileToUpdate->setProfileName(profileName);   
++  //      profileToUpdate->setProfileName(profileName);   
+         profiles.remove();
+-        profiles.insert(curPos,profileToUpdate);
++        profiles.insert(curPos,newProfile);
+         netInfo->setProfilesList(profiles);
+         modified = false;        
+         enableApplyButtonSlot();
+--- knetworkconf/knetworkconf/knetworkconfigparser.h	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkconfigparser.h	(revision 495373)
+@@ -105,6 +105,8 @@
+     void readFromStdoutSaveNetworkInfo();
+     /** Calls runDetectionScript(). */
+     void listIfacesSlot();
++    /** save process has exited */
++    void processExitedSlot();
+                 
+   private:
+     //QPtrList<KNetworkInterface> deviceList;
+@@ -125,6 +127,8 @@
+     void loadSupportedPlatforms();
+     /** Returns the info of a platform in the form of 'key:value' . */
+     QString getPlatformInfo(QDomElement platform);
++    /** save process is running */
++    bool processRunning;
+ 
+     /** Shows a progress dialog while the networl is being reloaded. */
+     KInterfaceUpDownDlg * kpdReloadStatusDlg;
+--- knetworkconf/knetworkconf/knetworkinterface.cpp	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkinterface.cpp	(revision 495373)
+@@ -43,6 +43,9 @@
+ QString KNetworkInterface::getOnBoot(){
+   return onBoot;
+ }
++QString KNetworkInterface::getGateway(){
++  return gateway;
++}
+ 
+ void KNetworkInterface::setBootProto(const QString &bootProto){
+   KNetworkInterface::bootProto = bootProto;
+@@ -65,6 +68,9 @@
+ void KNetworkInterface::setOnBoot(const QString &onBoot){
+   KNetworkInterface::onBoot = onBoot;
+ }
++void KNetworkInterface::setGateway(const QString &gateway){
++  KNetworkInterface::gateway = gateway;
++}
+ bool KNetworkInterface::isActive(){
+   return active;
+ }
+--- knetworkconf/knetworkconf/kadddevicecontainer.cpp	(revision 488946)
++++ knetworkconf/knetworkconf/kadddevicecontainer.cpp	(revision 495373)
+@@ -66,6 +66,7 @@
+     //Setup connections
+     connect((KAddDeviceDlgExtension*)extension(),SIGNAL(valueChangedSignal(int)),this,SLOT(toggleApplyButtonSlot(int)));
+     connect(addDlg->kleIPAddress,SIGNAL(textChanged(const QString&)),this,SLOT(toggleApplyButtonSlot(const QString&)));
++//    connect(addDlg->kleGateway,SIGNAL(textChanged(const QString&)),this,SLOT(toggleApplyButtonSlot(const QString&)));
+     connect(addDlg->kcbNetmask,SIGNAL(activated(int)),this,SLOT(toggleApplyButtonSlot(int)));
+     connect(addDlg->kcbAutoBootProto,SIGNAL(activated(const QString&)),this,SLOT(toggleApplyButtonSlot(const QString&)));
+     connect(addDlg->kcbstartAtBoot,SIGNAL(stateChanged(int)),this,SLOT(toggleApplyButtonSlot(int)));
+@@ -118,15 +119,23 @@
+   
+   if (addDlg->rbBootProtoManual->isChecked())
+   {	
+-    if (!KAddressValidator::isValidIPAddress(addDlg->kleIPAddress->text()))
++    QString ipAddress = addDlg->kleIPAddress->text();
++    QString netmask = addDlg->kcbNetmask->currentText();
++    QString broadcast = advancedOptions->kleBroadcast->text();
++    QString gateway = advancedOptions->kleGateway->text();
++    
++    if (!KAddressValidator::isValidIPAddress(ipAddress))
+     {
+       KMessageBox::error(this,i18n("The format of the specified IP address is not valid."),i18n("Invalid IP Address"));
+     }    
+-    else if (_advanced && !KAddressValidator::isNetmaskValid(addDlg->kcbNetmask->currentText()))
++    else if (_advanced && !KAddressValidator::isNetmaskValid(netmask))
+         KMessageBox::error(this,i18n("The format of the specified netmask is not valid."),i18n("Invalid IP Address"));
+         
+-    else if (_advanced && !KAddressValidator::isBroadcastValid(advancedOptions->kleBroadcast->text()))
++    else if (!broadcast.isEmpty() && _advanced && !KAddressValidator::isBroadcastValid(broadcast))
+         KMessageBox::error(this,i18n("The format of the specified broadcast is not valid."),i18n("Invalid IP Address"));
++    
++    else if (!gateway.isEmpty() && _advanced && !KAddressValidator::isValidIPAddress(gateway))
++        KMessageBox::error(this,i18n("The format of the specified Gateway is not valid."),i18n("Invalid IP Address"));
+         
+     else
+     {
+--- knetworkconf/knetworkconf/knetworkconfdlg.ui	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkconfdlg.ui	(revision 495373)
+@@ -9,7 +9,7 @@
+             <x>0</x>
+             <y>0</y>
+             <width>510</width>
+-            <height>555</height>
++            <height>410</height>
+         </rect>
+     </property>
+     <property name="sizePolicy">
+@@ -771,116 +771,104 @@
+                 <attribute name="title">
+                     <string>Network Profiles</string>
+                 </attribute>
+-                <grid>
++                <vbox>
+                     <property name="name">
+                         <cstring>unnamed</cstring>
+                     </property>
+-                    <widget class="QLabel" row="0" column="0">
++                    <widget class="QButtonGroup">
+                         <property name="name">
+-                            <cstring>textLabel1</cstring>
++                            <cstring>buttonGroup2</cstring>
+                         </property>
+-                        <property name="text">
++                        <property name="title">
+                             <string>Available Network Profiles</string>
+                         </property>
+-                    </widget>
+-                    <widget class="KListView" row="1" column="0" rowspan="1" colspan="2">
+-                        <column>
+-                            <property name="text">
+-                                <string>Name</string>
+-                            </property>
+-                            <property name="clickable">
+-                                <bool>true</bool>
+-                            </property>
+-                            <property name="resizable">
+-                                <bool>true</bool>
+-                            </property>
+-                        </column>
+-                        <property name="name">
+-                            <cstring>klvProfilesList</cstring>
+-                        </property>
+-                        <property name="itemsRenameable">
+-                            <bool>true</bool>
+-                        </property>
+-                    </widget>
+-                    <spacer row="2" column="0">
+-                        <property name="name">
+-                            <cstring>spacer18</cstring>
+-                        </property>
+-                        <property name="orientation">
+-                            <enum>Vertical</enum>
+-                        </property>
+-                        <property name="sizeType">
+-                            <enum>Expanding</enum>
+-                        </property>
+-                        <property name="sizeHint">
+-                            <size>
+-                                <width>20</width>
+-                                <height>350</height>
+-                            </size>
+-                        </property>
+-                    </spacer>
+-                    <spacer row="0" column="1" rowspan="1" colspan="2">
+-                        <property name="name">
+-                            <cstring>spacer25</cstring>
+-                        </property>
+-                        <property name="orientation">
+-                            <enum>Horizontal</enum>
+-                        </property>
+-                        <property name="sizeType">
+-                            <enum>Expanding</enum>
+-                        </property>
+-                        <property name="sizeHint">
+-                            <size>
+-                                <width>326</width>
+-                                <height>20</height>
+-                            </size>
+-                        </property>
+-                    </spacer>
+-                    <widget class="QLayoutWidget" row="1" column="2">
+-                        <property name="name">
+-                            <cstring>layout28</cstring>
+-                        </property>
+-                        <vbox>
++                        <grid>
+                             <property name="name">
+                                 <cstring>unnamed</cstring>
+                             </property>
+-                            <widget class="KPushButton">
++                            <widget class="KListView" row="0" column="0" rowspan="2" colspan="1">
++                                <column>
++                                    <property name="text">
++                                        <string>Name</string>
++                                    </property>
++                                    <property name="clickable">
++                                        <bool>true</bool>
++                                    </property>
++                                    <property name="resizable">
++                                        <bool>true</bool>
++                                    </property>
++                                </column>
+                                 <property name="name">
+-                                    <cstring>kpbEnableProfile</cstring>
++                                    <cstring>klvProfilesList</cstring>
+                                 </property>
+-                                <property name="text">
+-                                    <string>&amp;Load Selected</string>
++                                <property name="itemsRenameable">
++                                    <bool>true</bool>
+                                 </property>
+                             </widget>
+-                            <widget class="KPushButton">
++                            <widget class="QLayoutWidget" row="0" column="1">
+                                 <property name="name">
+-                                    <cstring>kpbSaveProfile</cstring>
++                                    <cstring>layout28</cstring>
+                                 </property>
+-                                <property name="text">
+-                                    <string>&amp;Save Selected</string>
+-                                </property>
++                                <vbox>
++                                    <property name="name">
++                                        <cstring>unnamed</cstring>
++                                    </property>
++                                    <widget class="KPushButton">
++                                        <property name="name">
++                                            <cstring>kpbEnableProfile</cstring>
++                                        </property>
++                                        <property name="text">
++                                            <string>&amp;Load Selected</string>
++                                        </property>
++                                    </widget>
++                                    <widget class="KPushButton">
++                                        <property name="name">
++                                            <cstring>kpbSaveProfile</cstring>
++                                        </property>
++                                        <property name="text">
++                                            <string>&amp;Save Selected</string>
++                                        </property>
++                                    </widget>
++                                    <widget class="KPushButton">
++                                        <property name="name">
++                                            <cstring>kpbCreateProfile</cstring>
++                                        </property>
++                                        <property name="text">
++                                            <string>&amp;Create New...</string>
++                                        </property>
++                                    </widget>
++                                    <widget class="KPushButton">
++                                        <property name="name">
++                                            <cstring>kpbDeleteProfile</cstring>
++                                        </property>
++                                        <property name="text">
++                                            <string>&amp;Delete Selected</string>
++                                        </property>
++                                    </widget>
++                                </vbox>
+                             </widget>
+-                            <widget class="KPushButton">
++                            <spacer row="1" column="1">
+                                 <property name="name">
+-                                    <cstring>kpbCreateProfile</cstring>
++                                    <cstring>spacer25</cstring>
+                                 </property>
+-                                <property name="text">
+-                                    <string>&amp;Create New...</string>
++                                <property name="orientation">
++                                    <enum>Vertical</enum>
+                                 </property>
+-                            </widget>
+-                            <widget class="KPushButton">
+-                                <property name="name">
+-                                    <cstring>kpbDeleteProfile</cstring>
++                                <property name="sizeType">
++                                    <enum>Expanding</enum>
+                                 </property>
+-                                <property name="text">
+-                                    <string>&amp;Delete Selected</string>
++                                <property name="sizeHint">
++                                    <size>
++                                        <width>21</width>
++                                        <height>51</height>
++                                    </size>
+                                 </property>
+-                            </widget>
+-                        </vbox>
++                            </spacer>
++                        </grid>
+                     </widget>
+-                    <spacer row="2" column="2">
++                    <spacer>
+                         <property name="name">
+-                            <cstring>spacer9_3</cstring>
++                            <cstring>spacer18</cstring>
+                         </property>
+                         <property name="orientation">
+                             <enum>Vertical</enum>
+@@ -891,24 +879,24 @@
+                         <property name="sizeHint">
+                             <size>
+                                 <width>20</width>
+-                                <height>350</height>
++                                <height>150</height>
+                             </size>
+                         </property>
+                     </spacer>
+-                </grid>
++                </vbox>
+             </widget>
+         </widget>
+     </hbox>
+ </widget>
+ <images>
+     <image name="image0">
+-        <data format="PNG" length="1108">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000041b4944415418959d956148a3751cc7bff3ecb6bb149e8186c2f56290912b38f6908417058b043d7b9504a5f522f5459d16c8cda2d45e9441748b38721dd2f6227208ea2c74d338ce5d4c9ca0ee913aa671ca1ed263cfdcd69ee76ae9d2e9b717534f421df58387df9b872f9fe7fbf93fcf039238ee0280beeb7d4f930c31c20cc9cc897b8d19925ba160c8cf9bac008063430f82e9e6abd1682a4537f9c9508424e9f4a7723b90dbd7c622a49b748e454832d6f541574ddee011f7482349f572cf0c4373e4cbd7c954946c7693a938d9d84f867f21ab3b43dcbc4b72891bf4b316000a70ca34d435405e57b095be84d641096a1a78fd3b195a727f6b40eba0042d2da27550022a01dba40d79833db73c303d5a0e4df341794a849694d0556d829204b6aa4c509212baaa4428eb3ef43e27429a9760afb3e70f6ea86d80b2aec260a847e6471f544d44eb60109934101b0e22a389681df603d97ab44ffa215689e89eec7e10708afd6d920cdf656e72fe3830116238405a3ac9ca51b2ec952946032483ffeab8ada4ed3145514d9885be7758d6c304bdebb6aa87090fb9a655982b00fbb80ccc02ae71194d75223e9d0da2bc0410e625184b5e806d5a02aa1f74fcffecef3f4178892499a5c42cc9dda989a90827f83c00e800802936ca69c5d1f265b9a041825022e25ca10c83c1844c5606b226a89a044d13612993e0fe48846fd287faba7afac67df17aa57ec6917528aaa62e2fce2f0e8dfe309ac8110fe5882d6f7a59e6222d1d21ce04c8ea1ed21a202d9d217a4749e1252f237e32248573c839f2add05cc8cb3956595fb4ea49ea0e3bfecff62d6604a783400520cbf219b14a34768f779fadaca8dcd6e9743cecd83be66d24a95a3b66e81d222d1d39526b4f98a1e3edef718daad3e5f473895f5d7de76a4db8365c7cf4a8e63ade6493a2a97deddf1805392da15c106128926128cc759cc91ce9f88204f78762d6feb9fdd7584cfb58281196ba2fd8b67aef39fe3414b6253bdf3f423ce01eb84c728d71ee92cc32cadda3e776dffe1e25ee91e4d4cda93d6e727be0db9175a6287927a61628f1b3c6d79acf1d649e0100cb458b968827ee9b9f30ffe619f3fc6e7ec65c2e2fcb7a6385114b7796607eb2949eef3d7f9bef98e3f619fb8e1255fef207fcc9f67b6f6dd87eb2adc6e289a4cbdbbfa22592f32b9195ec213183d4455d51bdb3df692539cd78ee8d639c79ed9ff4752c0000dd251ddd9a7ba7a5a805d2a2a4472974caba029402b22ce7b79f6faebc7da598126b9cfdce3ec6394d3feff30f6e9c66ff2462ddc10dd7be7016d8d0f288bbcc73be29d6506ccf3a9eb5bdd7d6eef8da959057e5be93ec1ffc144e1cfaf9709fc37983e482778c3f739b89b014de219939cd7e5ee2c6379a0d82607cd72808177bd17db6b7b0f77183c1701e59c0a6d952b6ac2d622812f6e4d5e5052da1dd98b83591398df81f24eff65c9cee97290000000049454e44ae426082</data>
++        <data format="PNG" length="1108">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000041b49444154388d9d956148a3751cc7bff3ecb6bb149e8186c2f56290912b38f6908417058b043d7b9504a5f522f5459d16c8cda2d45e9441748b38721dd2f6227208ea2c74d338ce5d4c9ca0ee913aa671ca1ed263cfdcd69ee76ae9d2e9b717534f421df58387df9b872f9fe7fbf93fcf039238ee0280beeb7d4f930c31c20cc9cc897b8d19925ba160c8cf9bac008063430f82e9e6abd1682a4537f9c9508424e9f4a7723b90dbd7c622a49b748e454832d6f541574ddee011f7482349f572cf0c4373e4cbd7c954946c7693a938d9d84f867f21ab3b43dcbc4b72891bf4b316000a70ca34d435405e57b095be84d641096a1a78fd3b195a727f6b40eba0042d2da27550022a01dba40d79833db73c303d5a0e4df341794a849694d0556d829204b6aa4c509212baaa4428eb3ef43e27429a9760afb3e70f6ea86d80b2aec260a847e6471f544d44eb60109934101b0e22a389681df603d97ab44ffa215689e89eec7e10708afd6d920cdf656e72fe3830116238405a3ac9ca51b2ec952946032483ffeab8ada4ed3145514d9885be7758d6c304bdebb6aa87090fb9a655982b00fbb80ccc02ae71194d75223e9d0da2bc0410e625184b5e806d5a02aa1f74fcffecef3f4178892499a5c42cc9dda989a90827f83c00e800802936ca69c5d1f265b9a041825022e25ca10c83c1844c5606b226a89a044d13612993e0fe48846fd287faba7afac67df17aa57ec6917528aaa62e2fce2f0e8dfe309ac8110fe5882d6f7a59e6222d1d21ce04c8ea1ed21a202d9d217a4749e1252f237e32248573c839f2add05cc8cb3956595fb4ea49ea0e3bfecff62d6604a783400520cbf219b14a34768f779fadaca8dcd6e9743cecd83be66d24a95a3b66e81d222d1d39526b4f98a1e3edef718daad3e5f473895f5d7de76a4db8365c7cf4a8e63ade6493a2a97deddf1805392da15c106128926128cc759cc91ce9f88204f78762d6feb9fdd7584cfb58281196ba2fd8b67aef39fe3414b6253bdf3f423ce01eb84c728d71ee92cc32cadda3e776dffe1e25ee91e4d4cda93d6e727be0db9175a6287927a61628f1b3c6d79acf1d649e0100cb458b968827ee9b9f30ffe619f3fc6e7ec65c2e2fcb7a6385114b7796607eb2949eef3d7f9bef98e3f619fb8e1255fef207fcc9f67b6f6dd87eb2adc6e289a4cbdbbfa22592f32b9195ec213183d4455d51bdb3df692539cd78ee8d639c79ed9ff4752c0000dd251ddd9a7ba7a5a805d2a2a4472974caba029402b22ce7b79f6faebc7da598126b9cfdce3ec6394d3feff30f6e9c66ff2462ddc10dd7be7016d8d0f288bbcc73be29d6506ccf3a9eb5bdd7d6eef8da959057e5be93ec1ffc144e1cfaf9709fc37983e482778c3f739b89b014de219939cd7e5ee2c6379a0d82607cd72808177bd17db6b7b0f77183c1701e59c0a6d952b6ac2d622812f6e4d5e5052da1dd98b83591398df81f24eff65ce00de8ce0000000049454e44ae426082</data>
+     </image>
+     <image name="image1">
+-        <data format="PNG" length="989">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a4494441541895759541485c5714863fed13e6818579904266d185d0453320e5cd6e062cb5e0c2580b66c8a2912e7498c2d8a690362d485da5d2459a2e52e8a2c5879bd82c125d8cc68245179679598d168bcf454b84363812429e94c1199a81bf8b3b4ee68de66cfe7bee39f7dcff9e7bef394842be9044c92fd1aebb855d955725b720b9ab925b281b3d2fb945a9d3bf5def2af92532e90cfe433f82a9a940900402a2b805a40c3652b8e4f07ef2ba3ad79fdac930db55794d4a7f213d0ba4294f92a4b95549ff4a57be931ef9cd93142537bf2e15a576e6ada025bf845b3041ddabd2e4ed6792a4477f1f4b928e0db4707de758f2a4f4b547720b523abfaec9fc642b3da798ee6e4a5f2f99c57ad244b387ee6f46751d18b8386dee20ddc6bc95e3d45420ac24970642662e3b04ffd448be6eb7b0533aed99cff6a957fb70c9190773fb6595d7a4c9db86413968323ac1ff74b634eda51d733af7aa942e4a93f949bd527cf2be20c5dae37d8a330e1bdb21997e9b8ded90be7e9bda73e8e93945d8c86bb0b11df2f65b36de66853f0f5fa5fabb4f57e3084edee9c18e7467ad23972f63da21577e30af273d2d958bd2e0c41d75b985b22085fb6688f7a983f74b85dc70825a0decd3a93d25b5e760f740e606d080fad32de28d14dd8ca680006fcce1d63dc8bd93808ea08bbf45832db4e976334deb13cd89d114b04837cb5b4092f17b21d743b87eb7026d41677eaeb1fa4734f0fe008cdc8cce8ddc6d0e9603204bf7dc680a80ca9043b60a5fa513646f42b807ef7e03b97e9bc36ac7f997211c32c70fb60dd6878c696e38092cd0e5e6cbc24a41bc46bcf7eca4da163cf8323a97b9f1621cb30c1e5581688eb7981bb2b12d581823828c9ede6876d9d86316c4dafca99b1c3bcc989ff7c97c46c40212e793c47b6b9824bfc09865e34d45838f7f1ff53baa86541e3bc4ea8b5cb056e9cea433e61b0e27a91d052c5cb649f4c2c207516c17efd7a83d1e83da80030d1f7f2c0bd0562b3ef2859521712ee0c11b4966ad0a90002acc90c0734272c30e8b0f43b2fb0eb3187bbd5161fbaf0495439f7823439fd5562b4a7e0915a5747e45eeaa74717a573a90be5d32bfef65f8f98fd2812fb9f9920e964c8d50b3b3443a8837ef698f4bd41921d6bb45e25c8a0be7f7897fd887bd12f2f17b0eb7562a1c8509f60e032a4f93d4ab51a6b9895c57ab83447a56b33aa58b8649b9686ac9e08634782ddaf3d213f775e2af8e1e7866cff3e63d011c36faa8d107d638b008648105688ce33043dcaab42ef484e9499cff01b1f34611f29b4dc10000000049454e44ae426082</data>
++        <data format="PNG" length="989">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003a449444154388d759541485c5714863fed13e6818579904266d185d0453320e5cd6e062cb5e0c2580b66c8a2912e7498c2d8a690362d485da5d2459a2e52e8a2c5879bd82c125d8cc68245179679598d168bcf454b84363812429e94c1199a81bf8b3b4ee68de66cfe7bee39f7dcff9e7bef394842be9044c92fd1aebb855d955725b720b9ab925b281b3d2fb945a9d3bf5def2af92532e90cfe433f82a9a940900402a2b805a40c3652b8e4f07ef2ba3ad79fdac930db55794d4a7f213d0ba4294f92a4b95549ff4a57be931ef9cd93142537bf2e15a576e6ada025bf845b3041ddabd2e4ed6792a4477f1f4b928e0db4707de758f2a4f4b547720b523abfaec9fc642b3da798ee6e4a5f2f99c57ad244b387ee6f46751d18b8386dee20ddc6bc95e3d45420ac24970642662e3b04ffd448be6eb7b0533aed99cff6a957fb70c9190773fb6595d7a4c9db86413968323ac1ff74b634eda51d733af7aa942e4a93f949bd527cf2be20c5dae37d8a330e1bdb21997e9b8ded90be7e9bda73e8e93945d8c86bb0b11df2f65b36de66853f0f5fa5fabb4f57e3084edee9c18e7467ad23972f63da21577e30af273d2d958bd2e0c41d75b985b22085fb6688f7a983f74b85dc70825a0decd3a93d25b5e760f740e606d080fad32de28d14dd8ca680006fcce1d63dc8bd93808ea08bbf45832db4e976334deb13cd89d114b04837cb5b4092f17b21d743b87eb7026d41677eaeb1fa4734f0fe008cdc8cce8ddc6d0e9603204bf7dc680a80ca9043b60a5fa513646f42b807ef7e03b97e9bc36ac7f997211c32c70fb60dd6878c696e38092cd0e5e6cbc24a41bc46bcf7eca4da163cf8323a97b9f1621cb30c1e5581688eb7981bb2b12d581823828c9ede6876d9d86316c4dafca99b1c3bcc989ff7c97c46c40212e793c47b6b9824bfc09865e34d45838f7f1ff53baa86541e3bc4ea8b5cb056e9cea433e61b0e27a91d052c5cb649f4c2c207516c17efd7a83d1e83da80030d1f7f2c0bd0562b3ef2859521712ee0c11b4966ad0a90002acc90c0734272c30e8b0f43b2fb0eb3187bbd5161fbaf0495439f7823439fd5562b4a7e0915a5747e45eeaa74717a573a90be5d32bfef65f8f98fd2812fb9f9920e964c8d50b3b3443a8837ef698f4bd41921d6bb45e25c8a0be7f7897fd887bd12f2f17b0eb7562a1c8509f60e032a4f93d4ab51a6b9895c57ab83447a56b33aa58b8649b9686ac9e08634782ddaf3d213f775e2af8e1e7866cff3e63d011c36faa8d107d638b008648105688ce33043dcaab42ef484e9499cff01b1f34611a3ab60c70000000049454e44ae426082</data>
+     </image>
+     <image name="image2">
+-        <data format="PNG" length="1020">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003c349444154189575954d481c6718c77fca1e1cf0b00316b2d01e8404e242a133b75928d4d01c4c2bd4480e4de821bb6c41f30121ed21d45e9adc620f1642697190827b091acad66e20a91e5276bc74152cbb425a0cd8b22325b812c45dcac2bf87776775347d2eff79bf9ef9bdcffbbecf832414084994833247dbce44559592e44c484e4972262aa69d979ca2747cfed1764f392893f13204ab414cddc99a200dd488eb1ae01a6dbb38e4f0bff77b8eaf3ff127435655e589e47d2eedd6a4495f92a4d992a457d2e5afa5ada0b393a2e4e497a5a27494bcebb41c9471268c53e786949dd995246d6d1f48920e8c747579e340f225efd6969c09c9cb2f2b9bcf76c37382b4fa4cbafbc82cd63f715d0a8ef5d78d5cb863cec03b42de258e48ef3e34a4d50e69a4bbaf8c93adfac16bc7bd5b5b72f252369f55369f8d4ebfa2ca13293b6316576a1da2483b6491559ec7c7cb1b6617ce0dc92b1ae7bdeee49ac0e5fad317f8376165bd813b64944853c4cc3d131fcfbc0dfe6f21c97e68fd14b0d31e84e89ed637a4f9278660e1595cf55c315be8c47a7e45d2bfd2e507e6f67877a44a511abe3aaf1e67a2227071ce36f06fdaf88f4372efa798feb1011fd9d8bf84e4468e2103fee390f0bd14ebdf3609f72dd3d986d6cb35926d97ee6dd0b674ffa1a457d2ec4a87e899a40369792d4efcc50f92b6256d98f6c519a9ba26795f9adb319c5f38241e3adda0d06f33fd4683cfc6ec2ed9e26a9371cf8ad18e7f03b7472073e6b02ff355445c23d94ed33b3bea02109eb719df876befd8f0c711279e057fc5c3b0381a77fae029306abe6747d240811e275f110917924d92fd86cc4ac0ed5138377422b4276cfa3194d6cdf7de3ed089712fa326a1cc9eb7b012501833939c0431f2d7d983a7507a93c3752d60d4c566ca64b7eb7319d15723752a4db2bf09584093649f456ed8dcdbe356f8b5c9caef16adb699bfb7df20fcdba6afb5c850a2446fc6cbe090839134cdbd1a854b16a97e287c6c76e00e7032c6ab70e5ac85dd67e625fba0f9ae0ded80606c1ce0301fbb9f062291213550e3e7d369ee2542cc930b99ba94a2b6d324fd96c5ca7a93739b16f730e3ad76c8fa9f29c29d80643bc3602267feae281f17252fbf24a7245db85395ead2fd47e665fd9fdefe4eaa0792932fabfec8e408752a4bac82f873be36b9488b0fe8eb5f2335e03274ea05c94f06b1961a5cfbd0667a2964af916273a746f8324d6b3f4e9abb9aebe9569058cdea6427af68482a45934b8657a4e15bf19ae75d5d50345fc76ae06b6b9e3fe70b60a73d489341485c01168171a000ed2bd84c914c84dd038d48233fff01da21be24705e59620000000049454e44ae426082</data>
++        <data format="PNG" length="1020">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003c349444154388d75954d481c6718c77fca1e1cf0b00316b2d01e8404e242a133b75928d4d01c4c2bd4480e4de821bb6c41f30121ed21d45e9adc620f1642697190827b091acad66e20a91e5276bc74152cbb425a0cd8b22325b812c45dcac2bf87776775347d2eff79bf9ef9bdcffbbecf832414084994833247dbce44559592e44c484e4972262aa69d979ca2747cfed1764f392893f13204ab414cddc99a200dd488eb1ae01a6dbb38e4f0bff77b8eaf3ff127435655e589e47d2eedd6a4495f92a4d992a457d2e5afa5ada0b393a2e4e497a5a27494bcebb41c9471268c53e786949dd995246d6d1f48920e8c747579e340f225efd6969c09c9cb2f2b9bcf76c37382b4fa4cbafbc82cd63f715d0a8ef5d78d5cb863cec03b42de258e48ef3e34a4d50e69a4bbaf8c93adfac16bc7bd5b5b72f252369f55369f8d4ebfa2ca13293b6316576a1da2483b6491559ec7c7cb1b6617ce0dc92b1ae7bdeee49ac0e5fad317f8376165bd813b64944853c4cc3d131fcfbc0dfe6f21c97e68fd14b0d31e84e89ed637a4f9278660e1595cf55c315be8c47a7e45d2bfd2e507e6f67877a44a511abe3aaf1e67a2227071ce36f06fdaf88f4372efa798feb1011fd9d8bf84e4468e2103fee390f0bd14ebdf3609f72dd3d986d6cb35926d97ee6dd0b674ffa1a457d2ec4a87e899a40369792d4efcc50f92b6256d98f6c519a9ba26795f9adb319c5f38241e3adda0d06f33fd4683cfc6ec2ed9e26a9371cf8ad18e7f03b7472073e6b02ff355445c23d94ed33b3bea02109eb719df876befd8f0c711279e057fc5c3b0381a77fae029306abe6747d240811e275f110917924d92fd86cc4ac0ed5138377422b4276cfa3194d6cdf7de3ed089712fa326a1cc9eb7b012501833939c0431f2d7d983a7507a93c3752d60d4c566ca64b7eb7319d15723752a4db2bf09584093649f456ed8dcdbe356f8b5c9caef16adb699bfb7df20fcdba6afb5c850a2446fc6cbe090839134cdbd1a854b16a97e287c6c76e00e7032c6ab70e5ac85dd67e625fba0f9ae0ded80606c1ce0301fbb9f062291213550e3e7d369ee2542cc930b99ba94a2b6d324fd96c5ca7a93739b16f730e3ad76c8fa9f29c29d80643bc3602267feae281f17252fbf24a7245db85395ead2fd47e665fd9fdefe4eaa0792932fabfec8e408752a4bac82f873be36b9488b0fe8eb5f2335e03274ea05c94f06b1961a5cfbd0667a2964af916273a746f8324d6b3f4e9abb9aebe9569058cdea6427af68482a45934b8657a4e15bf19ae75d5d50345fc76ae06b6b9e3fe70b60a73d489341485c01168171a000ed2bd84c914c84dd038d48233fff01da21be2465fed86a0000000049454e44ae426082</data>
+     </image>
+ </images>
+ <connections>
+--- knetworkconf/knetworkconf/knetworkconfigparser.cpp	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkconfigparser.cpp	(revision 495373)
+@@ -38,10 +38,9 @@
+   if (pathToProgram.isEmpty())
+   {
+     KMessageBox::error(0,
+-                        i18n("Could not find the network detection scripts. Something is wrong with your installation.\n Please check that  \n{KDE_PATH}/%1 \nfile is present.").arg(BACKEND_PATH),
+-                        i18n("Could Not Find Network Backend Script"));
++                        i18n("Could not find the backend script for the network configuration detection. Something is wrong with your installation.\n Please check that  \n{KDE_PATH}/%1 \nfile is present.").arg(BACKEND_PATH),
++                        i18n("Could Not Find Network Configuration Backend Script"));
+       dialog->close();
+-      exit(5);
+       //kapp->quit();
+   }
+   else
+@@ -63,10 +62,9 @@
+     {
+     // error handling
+       KMessageBox::error(0,
+-                        i18n("Could not execute network detection scripts. Something is wrong with your installation."),
+-                        i18n("Could Not Launch Network Backend Script"));
++                        i18n("Could not execute backend script for the network configuration detection. Something is wrong with your installation."),
++                        i18n("Could Not Launch Network Configuration Backend Script"));
+       dialog->close();
+-      exit(5);
+     }
+   }
+ }
+@@ -93,10 +91,9 @@
+  if ( !procDetect->start() )
+   {
+ // error handling
+-    KMessageBox::error(0,
+-                        i18n("Could not execute network detection scripts. Something is wrong with your installation."),
+-                        i18n("Could Not Launch Network Backend Script"));
+-    exit(5);
++      KMessageBox::error(0,
++                        i18n("Could not execute backend script for the network configuration detection. Something is wrong with your installation."),
++                        i18n("Could Not Launch Network Configuration Backend Script"));
+   }
+ }
+ 
+@@ -113,7 +110,7 @@
+     if ( !doc.setContent( xmlOuput.utf8(),false,&err,&x,&y  ) )
+     {
+       KMessageBox::error(0,
+-                      i18n("Could not parse the XML file."),
++                      i18n("Could not parse the XML output from the network configuration backend."),
+                       i18n("Error While Listing Network Interfaces"));
+ //        qDebug("error: %s %d,%d",err.latin1(),x,y);
+     }
+@@ -285,9 +282,9 @@
+   procSaveNetworkInfo->addArgument( "--set" );
+ 
+ //  KDetectDistroDlg* dialog = new KDetectDistroDlg(0, 0, true,QDialog::WStyle_Customize|QDialog::WStyle_NormalBorder|QDialog::WStyle_Title|QDialog::WStyle_SysMenu); //made it semi-modal
+-  KDetectDistroDlg* dialog = new KDetectDistroDlg(0, 0);
++  KDetectDistroDlg* dialog = new KDetectDistroDlg((QWidget*)parent(), 0, true);
+   dialog->setCaption(i18n("Reloading Network"));
+-  dialog->text->setText(i18n("%1Please wait while reloading the network...%2").arg("<center>").arg("</center>"));
++  dialog->text->setText(i18n("%1Please wait while saving the network settings...%2").arg("<center>").arg("</center>"));
+   dialog->show();
+ 
+   xmlOuput = "";
+@@ -296,18 +293,29 @@
+   connect(procSaveNetworkInfo,SIGNAL(readyReadStdout()),this,SLOT(readFromStdoutSaveNetworkInfo()));
+   connect(procSaveNetworkInfo,SIGNAL(wroteToStdin()),this,SLOT(sendNetworkInfoSavedSignalSlot()));
+   connect(procSaveNetworkInfo,SIGNAL(processExited()),this,SLOT(listIfacesSlot()));
++
++  processRunning = true;
++  connect( procSaveNetworkInfo, SIGNAL(processExited()), this, SLOT(processExitedSlot()) );
+    
+   if ( !procSaveNetworkInfo->start() )
+   {
+-    KMessageBox::error(0,
+-                        i18n("Could not execute network saving scripts. Something is wrong with your installation."),
+-                        i18n("Could Not Launch Network Backend Script"));
++      KMessageBox::error(0,
++                        i18n("Could not execute backend script for the network configuration detection. Something is wrong with your installation."),
++                        i18n("Could Not Launch Network Configuration Backend Script"));
+   }
+ 
+   procSaveNetworkInfo->writeToStdin(xml);
+ 
++  //wait around until the process has finished, otherwise it becomes a zombie
++  while (processRunning) {  
++    kapp->processEvents();
++  }
+ }
+ 
++void KNetworkConfigParser::processExitedSlot() {
++  processRunning = false;
++}
++
+ void KNetworkConfigParser::addNetworkProfilesToXMLDoc(QDomDocument *doc, QDomNode *root, QPtrList<KNetworkInfo> profileList)
+ {
+   QPtrListIterator<KNetworkInfo> profileIt(profileList);  
+@@ -367,6 +375,13 @@
+         t = doc->createTextNode( device->getIpAddress() );
+         innerTag.appendChild( t );
+       }
++      if (!device->getGateway().isEmpty())
++      {
++        innerTag = doc->createElement( "gateway" );
++        configurationTag.appendChild( innerTag );
++        t = doc->createTextNode( device->getGateway() );
++        innerTag.appendChild( t );
++      }
+       if (!device->getBroadcast().isEmpty())
+       {
+         innerTag = doc->createElement( "broadcast" );
+@@ -635,6 +650,12 @@
+               if (!e.text().isEmpty())
+ 	              tempDevice->setIpAddress(e.text());
+             }
++            else if ( configNodeName == "gateway")
++            {
++              QDomElement e = configNode.toElement();
++              if (!e.text().isEmpty())
++            	  tempDevice->setGateway(e.text());
++            }
+             else if ( configNodeName == "netmask" || configNodeName == "mask")
+             {
+               QDomElement e = configNode.toElement();
+@@ -798,8 +819,8 @@
+     if ( !doc.setContent( xmlOuput.utf8(),false,&err,&x,&y  ) )
+     {
+       KMessageBox::error(0,
+-                      i18n("Could not parse the XML file."),
+-                      i18n("Error"));
++                      i18n("Could not parse the XML output from the network configuration backend."),
++                      i18n("Error Loading The Network Configuration"));
+ //        qDebug("error: %s %d,%d",err.latin1(),x,y);
+     }
+       
+@@ -976,10 +997,9 @@
+  	if ( !procDetect->start() )
+   {
+ // error handling
+-    KMessageBox::error(0,
+-                        i18n("Could not list supported platforms. Something is wrong with your installation."),
+-                        i18n("Could Not Launch Network Backend Script"));
+-    exit(5);
++      KMessageBox::error(0,
++                        i18n("Could not execute backend script for the network configuration detection. Something is wrong with your installation."),
++                        i18n("Could Not Launch Network Configuration Backend Script"));
+ 	}
+ 
+ }
+@@ -992,8 +1012,8 @@
+   if ( !doc.setContent( xmlOuput.utf8() ) )
+   {
+     KMessageBox::error(0,
+-                         i18n("Could not parse the XML file of supported platforms."),
+-                         i18n("Error"));
++                         i18n("Could not parse the list of supported platforms from the network configuration backend."),
++                         i18n("Error Obtaining Supported Platforms List"));
+   }
+   QDomElement root = doc.documentElement();
+   QDomNode node = root.firstChild();
+@@ -1111,9 +1131,9 @@
+       QPixmap distroImg(locate("data","knetworkconf/pixmaps/blackpanther.png"));
+       dialog->klbDistroList->insertItem(distroImg, name);
+     }
+-    else if (key.contains("specifix"))
++    else if (key.contains("rpath"))
+     {
+-      QPixmap distroImg(locate("data","knetworkconf/pixmaps/specifix.png"));
++      QPixmap distroImg(locate("data","knetworkconf/pixmaps/rpath.png"));
+       dialog->klbDistroList->insertItem(distroImg, name);
+     }    
+     else if (key.contains("vine"))
+@@ -1135,12 +1155,10 @@
+     {
+       QPixmap distroImg(locate("data","knetworkconf/pixmaps/ark.png"));
+       dialog->klbDistroList->insertItem(distroImg, name);
+-    }
+-    
++    }    
+   } 
+   
+   if (!dialog->exec())
+-    //kapp->quit();
+     emit setReadOnly(true);
+   else
+   {
+--- knetworkconf/knetworkconf/knetworkconf.h	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkconf.h	(revision 495373)
+@@ -166,6 +166,7 @@
+                         QString bootProto,
+                         QString netmask,
+                         QString ipAddr,
++                        QString gateway,
+                         bool onBoot,
+                         QString desc,
+ 			QString broadcast);
+--- knetworkconf/knetworkconf/knetworkinterface.h	(revision 488946)
++++ knetworkconf/knetworkconf/knetworkinterface.h	(revision 495373)
+@@ -36,6 +36,7 @@
+     QString getNetmask();
+     QString getNetwork();
+     QString getOnBoot();
++    QString getGateway();
+     void setBootProto(const QString &bootProto);
+     void setBroadcast(const QString &broadcast);
+     void setDeviceName(const QString &deviceName);
+@@ -43,6 +44,7 @@
+     void setNetmask(const QString &netmask);
+     void setNetwork(const QString &network);
+     void setOnBoot(const QString &onBoot);
++    void setGateway(const QString &gateway);
+     bool isActive();
+     void setActive(bool active);
+     void setMacAddress(const QString &addr);
+@@ -67,6 +69,8 @@
+     QString broadcast;
+     /** thetermines if this device is configured at boot time. */
+     QString onBoot;
++    /** default gateway for this device. */
++    QString gateway;
+     bool active;
+     /** The MAC address. */
+     QString hwAddress;
+--- knetworkconf/backends/service.pl.in	(revision 488946)
++++ knetworkconf/backends/service.pl.in	(revision 495373)
+@@ -69,7 +69,10 @@
+        "mandrake-10.1" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+        "mandrake-10.2" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+        "mandriva-2006.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+-	   
++       "mandriva-2006.1" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
++
++       "yoper-2.2" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
++
+        "blackpanther-4.0" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+ 
+        "conectiva-9"  => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+@@ -79,7 +82,7 @@
+        "debian-3.0"   => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],
+        "debian-sarge" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],
+        "ubuntu-5.04" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],       
+-       "ubuntu-5.10" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],       
++       "ubuntu-6.04" => ["$gst_prefix/etc", "$gst_prefix/etc/init.d", "../init.d"],       
+        
+        "suse-7.0"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d", "../"],
+        "suse-9.0"     => ["$gst_prefix/etc/init.d", "$gst_prefix/etc/init.d", "../"],
+@@ -94,15 +97,14 @@
+        "fedora-1"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+        "fedora-2"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+        "fedora-3"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+-       
+-       "yoper-2.1"    => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+-       "yoper-2.2"    => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
++       "fedora-4"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+ 
+-       "specifix"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
++       "rpath"        => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+ 
+        "vine-3.0"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+        "vine-3.1"     => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+-       "ark"   => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/init.d", "../init.d"],
++
++       "ark" => ["$gst_prefix/etc/rc.d", "$gst_prefix/etc/rc.d/init.d", "../init.d"],
+        );
+   my $res;
+ 
+@@ -136,9 +138,12 @@
+        "mandrake-9.2"   => [3, 5],
+        "mandrake-10.0"  => [3, 5],
+        "mandrake-10.1"  => [3, 5],
+-	   "mandrake-10.2"  => [3, 5],
+-	   "mandriva-2006.0"  => [3, 5],
++       "mandrake-10.2"  => [3, 5],
++       "mandriva-2006.0"  => [3, 5],
++       "mandriva-2006.1"  => [3, 5],
+ 
++       "yoper-2.2"  => [3, 5],
++
+        "blackpanther-4.0" => [3, 5],
+ 
+        "conectiva-9"    => [3, 5],
+@@ -148,7 +153,7 @@
+        "debian-3.0"     => [2, 3],
+        "debian-sarge"   => [2, 3],
+        "ubuntu-5.04"   => [2, 3],       
+-       "ubuntu-5.10"   => [2, 3],       
++       "ubuntu-6.04"   => [2, 3],       
+        
+        "suse-7.0"       => [3, 5],
+        "suse-9.0"       => [3, 5],
+@@ -163,11 +168,9 @@
+        "fedora-1"       => [3, 5],
+        "fedora-2"       => [3, 5],
+        "fedora-3"       => [3, 5],
+-       
+-       "yoper-2.1"      => [3, 5],
+-       "yoper-2.2"      => [3, 5],
++       "fedora-4"       => [3, 5],
+ 
+-       "specifix"       => [3, 5],
++       "rpath"          => [3, 5],
+        
+        "vine-3.0"       => [3, 5],
+        "vine-3.1"       => [3, 5],
+@@ -205,9 +208,12 @@
+      "mandrake-9.2"   => "redhat-5.2",
+      "mandrake-10.0"  => "redhat-5.2",
+      "mandrake-10.1"  => "redhat-5.2",
+-	 "mandrake-10.2"  => "redhat-5.2",
+-	 "mandriva-2006.0"  => "redhat-5.2",
+-     
++     "mandrake-10.2"  => "redhat-5.2",
++     "mandriva-2006.0"  => "redhat-5.2",
++     "mandriva-2006.1"  => "redhat-5.2",
++
++     "yoper-2.2"  => "redhat-5.2",
++ 
+      "blackpanther-4.0" => "redhat-5.2",
+ 
+      "conectiva-9"    => "redhat-5.2",
+@@ -217,7 +223,7 @@
+      "debian-3.0"     => "debian-2.2",
+      "debian-sarge"   => "debian-2.2",
+      "ubuntu-5.04"   => "debian-2.2",     
+-     "ubuntu-5.10"   => "debian-2.2",     
++     "ubuntu-6.04"   => "debian-2.2",     
+           
+      "suse-7.0"       => "redhat-5.2",
+      "suse-9.0"       => "redhat-5.2",
+@@ -230,26 +236,25 @@
+      "fedora-1"       => "redhat-5.2",
+      "fedora-2"       => "redhat-5.2",
+      "fedora-3"       => "redhat-5.2",
++     "fedora-4"       => "redhat-5.2",
+ 
+-     "yoper-2.1"       => "redhat-5.2",
+-     "yoper-2.2"       => "redhat-5.2",
+-     
+-     "specifix"       => "redhat-5.2",
++     "rpath"          => "redhat-5.2",
+ 
+      "vine-3.0"       => "redhat-5.2",
+      "vine-3.1"       => "redhat-5.2",
+ 
++     "ark"            => "redhat-5.2",
++
+      "slackware-9.1.0" => "slackware-9.1.0",
+      "slackware-10.0.0" => "slackware-9.1.0",
+      "slackware-10.1.0" => "slackware-9.1.0",
++     "slackware-10.2.0" => "slackware-9.1.0",
+ 
+      "gentoo"         => "gentoo",
+      "vlos-1.2"       => "gentoo",
+ 
+      "freebsd-5"      => "freebsd-5",
+      "freebsd-6"      => "freebsd-5",
+-
+-     "ark"            => "redhat-5.2",
+     );
+ 
+   %runlevels=
+@@ -1569,7 +1574,7 @@
+        "debian-3.0"   => \&gst_service_debian_get_status,
+        "debian-sarge" => \&gst_service_debian_get_status,
+        "ubuntu-5.04" => \&gst_service_debian_get_status,
+-       "ubuntu-5.10" => \&gst_service_debian_get_status,
++       "ubuntu-6.04" => \&gst_service_debian_get_status,
+               
+        "redhat-5.2"   => \&gst_service_redhat_get_status,
+        "redhat-6.0"   => \&gst_service_redhat_get_status,
+@@ -1585,10 +1590,10 @@
+        "fedora-1"     => \&gst_service_redhat_get_status,
+        "fedora-2"     => \&gst_service_redhat_get_status,
+        "fedora-3"     => \&gst_service_redhat_get_status,
+-       "yoper-2.1"    => \&gst_service_redhat_get_status,
+-       "yoper-2.2"    => \&gst_service_redhat_get_status,       
+-       "specifix"     => \&gst_service_redhat_get_status,
++       "fedora-4"     => \&gst_service_redhat_get_status,
+ 
++       "rpath"        => \&gst_service_redhat_get_status,
++
+        "suse-9.0"     => \&gst_service_suse_get_status,
+        "suse-9.1"     => \&gst_service_suse_get_status,
+ 
+@@ -1597,8 +1602,6 @@
+ 
+        "freebsd-5"    => \&gst_service_rcng_get_status,
+        "freebsd-6"    => \&gst_service_rcng_get_status,
+-
+-       "ark"          => \&gst_service_redhat_get_status,
+       );
+   my $proc;
+ 
+--- knetworkconf/backends/network-conf.in	(revision 488946)
++++ knetworkconf/backends/network-conf.in	(revision 495373)
+@@ -65,17 +65,19 @@
+               "redhat-7.2", "redhat-8.0", "redhat-9",
+               "openna-1.0",
+               "mandrake-7.1", "mandrake-7.2", "mandrake-9.0", "mandrake-9.1", "mandrake-9.2",
+-              "mandrake-10.0", "mandrake-10.1", "mandrake-10.2", "mandriva-2006.0",
++              "mandrake-10.0", "mandrake-10.1","mandrake-10.2", "mandriva-2006.0", "mandriva-2006.1",
++              "yoper-2.2",
+               "blackpanther-4.0",
+               "debian-2.2", "debian-3.0", "debian-sarge",
+-	            "ubuntu-5.04", "ubuntu-5.10",
++              "ubuntu-5.04", "ubuntu-5.10", "ubuntu-6.04",
+               "suse-7.0", "suse-9.0", "suse-9.1",
+-              "turbolinux-7.0", "fedora-1", "fedora-2", "fedora-3", "specifix", "yoper-2.1", "yoper-2.2",
++              "turbolinux-7.0", "fedora-1", "fedora-2", "fedora-3", "fedora-4", "rpath",
+               "pld-1.0", "pld-1.1", "pld-1.99",
+               "conectiva-9", "conectiva-10",
+               "vine-3.0", "vine-3.1",
+-              "slackware-9.1.0", "slackware-10.0.0", "slackware-10.1.0",
+-              "gentoo", "vlos-1.2", "freebsd-5", "freebsd-6", "ark");
++              "ark", 
++              "slackware-9.1.0", "slackware-10.0.0", "slackware-10.1.0", "slackware-10.2.0",
++              "gentoo", "vlos-1.2", "freebsd-5", "freebsd-6");
+ 
+ $description =<<"end_of_description;";
+        Configures all network parameters and interfaces.
+@@ -185,7 +187,7 @@
+   }
+ 
+   # common regexp for IPv4 and IPv6
+-  if ($ip =~ /([0-9]+[\.:])+/)
++  if ($ip =~ /([0-9a-fA-F\.:])+/)
+   {
+     $$statichost{$ip} = \@alias;
+   }
+--- knetworkconf/backends/service-list.pl.in	(revision 488946)
++++ knetworkconf/backends/service-list.pl.in	(revision 495373)
+@@ -177,6 +177,7 @@
+ # AUTOMOUNTER: automounter daemons and so
+ # ANTIVIRUS:
+ # FILE_SHARING: for emule-like services
++# FTP_SERVER:
+ #
+ #
+ # If you feel that there are more important/necessary roles,
+@@ -199,6 +200,7 @@
+     "anacron" => "COMMAND_SCHEDULER",
+     "apmd" => "SYSTEM",
+     "atd" => "COMMAND_SCHEDULER", #FIXME
++    "atftpd" => "FTP_SERVER",
+     "aumix" => "SOUND",
+     "autofs" => "AUTOMOUNTER",
+     "bind" => "NETWORK",
+@@ -231,8 +233,9 @@
+     "festival" => "SOUND",	 #FIXME
+     "fetchmail" => "MAIL_FETCHER",
+     "freenet6" => "NETWORK",
+-    "gdm"	=> "DISPLAY_MANAGER",
+-    "gpm"	=> "SYSTEM",			#FIXME
++    "ftpd" => "FTP_SERVER",
++    "gdm" => "DISPLAY_MANAGER",
++    "gpm" => "SYSTEM",			#FIXME
+     "hdparm" => "SYSTEM",
+     "hotplug" => "SYSTEM",
+     "httpd"	=> "WEB_SERVER",
+@@ -258,6 +261,7 @@
+     "modules" => "SYSTEM",
+     "module-init-tools" => "SYSTEM",
+     "mysql" => "DATABASE_SERVER",
++    "muddleftpd" => "FTP_SERVER",
+     "named" => "NETWORK",
+     "netfs" => "SYSTEM",
+     "network" => "SYSTEM",
+@@ -270,6 +274,7 @@
+     "ntpdate" => "NTP_SERVER",
+     "ntp-client" => "NTP_CLIENT",
+     "ntp-simple" => "NTP_SERVER",
++    "oftpd" => "FTP_SERVER",
+     "oops" => "NETWORK",
+     "pcmcia" => "SYSTEM",
+     "pdnsd" => "NETWORK",
+@@ -280,7 +285,9 @@
+     "postgresql-7.4" => "DATABASE_SERVER",
+     "postgresql-8.0" => "DATABASE_SERVER",
+     "ppp"	=> "NETWORK",
++    "proftpd" => "FTP_SERVER",
+     "privoxy" => "NETWORK",
++    "pure-ftpd" => "FTP_SERVER",
+     "qmail" => "MTA",
+     "random" => "SYSTEM",
+     "rawdevices" => "SYSTEM",
+@@ -301,16 +308,20 @@
+     "sshd" => "SECURE_SHELL_SERVER",
+     "sysklogd" => "SYSTEM_LOGGER",
+     "syslog" => "SYSTEM_LOGGER",
++    "tftpd-hpa" => "FTP_SERVER",
+     "time" => "NETWORK",
+     "time-udp" => "NETWORK",
+     "urandom" => "SYSTEM",
+     "vcron" => "COMMAND_SCHEDULER",
+     "vmware" => "SYSTEM",	 # FIXME
++    "vsftpd" => "FTP_SERVER",
+     "wdm"	=> "DISPLAY_MANAGER",
+     "webmin" => "SYSTEM",	 # FIXME as well
+     "winbind" => "NETWORK",
+     "wine" => "SYSTEM",	 # FIXME like vmware
+-    "xdm"	=> "DISPLAY_MANAGER",
++    "wu-ftpd" => "FTP_SERVER",
++    "wzdftpd" => "FTP_SERVER",
++    "xdm" => "DISPLAY_MANAGER",
+     "xfs" => "SYSTEM",
+     "xinetd" => "NETWORK",
+     "zmailer" => "MTA",
+--- knetworkconf/backends/parse.pl.in	(revision 488946)
++++ knetworkconf/backends/parse.pl.in	(revision 495373)
+@@ -1788,3 +1788,41 @@
+     return $1;
+   }
+ }
++
++sub gst_parse_confd_net
++{
++  my ($file, $key) = @_;
++  my ($str, $contents, $i);
++
++  $contents = &gst_file_buffer_load ($file);
++
++  for ($i = 0; $i <= scalar (@$contents); $i++)
++  {
++    # search for key
++    if ($$contents[$i] =~ /^$key[ \t]*=[ \t]*\(/)
++    {
++      # contents can be multiline,
++      # just get the first value
++      do {
++        $$contents[$i] =~ /\"([^\"]*)\"/;
++        $str = $1;
++        $i++;
++      } while (!$str);
++    }
++  }
++
++  return $str;
++}
++
++sub gst_parse_confd_net_re
++{
++  my ($file, $key, $re) = @_;
++  my ($str);
++
++  $str = &gst_parse_confd_net ($file, $key);
++
++  if ($str =~ /$re/i)
++  {
++    return $1;
++  }
++}
+--- knetworkconf/backends/replace.pl.in	(revision 488946)
++++ knetworkconf/backends/replace.pl.in	(revision 495373)
+@@ -1715,3 +1715,56 @@
+   &gst_replace_pppconf_common ($pppconf, $section, $key,
+                                ($value == 1)? "enable $key" : "disable $key");
+ }
++
++sub gst_replace_confd_net_re
++{
++  my ($file, $key, $re, $value) = @_;
++  my ($str, $contents, $i, $found, $done);
++
++  $found = $done = 0;
++  $contents = &gst_file_buffer_load ($file);
++
++  for ($i = 0; $i <= scalar (@$contents); $i++)
++  {
++    # search for key
++    if ($$contents[$i] =~ /^$key[ \t]*=[ \t]*\(/)
++    {
++      $found = 1;
++
++      do {
++        if ($$contents[$i] =~ /\"([^\"]*)\"/)
++        {
++          $str = $1;
++
++          if ($str =~ /$re/)
++          {
++            $str =~ s/$re/$value/;
++          }
++          else
++          {
++            $str .= $value;
++          }
++
++          $$contents[$i] =~ s/\"([^\"]*)\"/\"$str\"/;
++          $done = 1;
++        }
++
++        $i++;
++      } while (!$done);
++    }
++  }
++
++  if (!$found)
++  {
++    push @$contents, "$key=(\"$value\")\n";
++  }
++
++  return &gst_file_buffer_save ($contents, $file);
++}
++
++sub gst_replace_confd_net
++{
++  my ($file, $key, $value) = @_;
++
++  return &gst_replace_confd_net_re ($file, $key, ".*", $value);
++}
+--- knetworkconf/backends/file.pl.in	(revision 488946)
++++ knetworkconf/backends/file.pl.in	(revision 495373)
+@@ -907,6 +907,7 @@
+ {
+   my ($orig, $dest) = @_;
+ 
++  return if (!gst_file_exists ($orig));
+   copy ("$gst_prefix/$orig", "$gst_prefix/$dest");
+ }
+ 
+--- knetworkconf/backends/platform.pl.in	(revision 488946)
++++ knetworkconf/backends/platform.pl.in	(revision 495373)
+@@ -41,8 +41,9 @@
+   "debian-2.2"      => "Debian GNU/Linux 2.2 Potato",
+   "debian-3.0"      => "Debian GNU/Linux 3.0 Woody",
+   "debian-sarge"    => "Debian GNU/Linux Sarge",
+-  "ubuntu-5.04"     => "Ubuntu GNU/Linux Hoary",
+-  "ubuntu-5.10"     => "Ubuntu GNU/Linux Breezy",
++  "ubuntu-5.04"     => "Kubuntu GNU/Linux Hoary",
++  "ubuntu-5.10"     => "Kubuntu GNU/Linux Breezy",
++  "ubuntu-6.04"     => "Kubuntu GNU/Linux Dapper",
+   "redhat-5.2"      => "Red Hat Linux 5.2 Apollo",
+   "redhat-6.0"      => "Red Hat Linux 6.0 Hedwig",
+   "redhat-6.1"      => "Red Hat Linux 6.1 Cartman",
+@@ -61,9 +62,11 @@
+   "mandrake-9.1"    => "Linux Mandrake 9.1 Bamboo",
+   "mandrake-9.2"    => "Linux Mandrake 9.2 FiveStar",
+   "mandrake-10.0"   => "Linux Mandrake 10.0",
+-  "mandrake-10.1"   => "Mandrake 10.1",
+-  "mandrake-10.2"   => "Mandrake Linux Limited Edition 2005",
++  "mandrake-10.1"   => "Linux Mandrake 10.1",
++  "mandrake-10.2"   => "Linux Mandrake 2005 LE",
+   "mandriva-2006.0"   => "Mandriva Linux 2006.0",
++  "mandriva-2006.1"   => "Mandriva Linux 2006.1",
++  "yoper-2.2"         => "Yoper Linux 2.2",
+   "blackpanther-4.0" => "Black Panther OS 4.0",
+   "conectiva-9"     => "Conectiva Linux 9",
+   "conectiva-10"    => "Conectiva Linux 10",
+@@ -77,6 +80,7 @@
+   "slackware-9.1.0" => "Slackware 9.1.0",
+   "slackware-10.0.0" => "Slackware 10.0.0",
+   "slackware-10.1.0" => "Slackware 10.1.0",
++  "slackware-10.2.0" => "Slackware 10.2.0",
+   "freebsd-4"       => "FreeBSD 4",
+   "freebsd-5"       => "FreeBSD 5",
+   "freebsd-6"       => "FreeBSD 6",
+@@ -91,10 +95,9 @@
+   "fedora-1"        => "Fedora Core 1 (Yarrow)",
+   "fedora-2"        => "Fedora Core 2 (Tettnang)",
+   "fedora-3"        => "Fedora Core 3 (Heidelberg)",
+-  "yoper-2.1"       => "Yoper Linux  2.1 (for i686)",
+-  "yoper-2.2"       => "Yoper Linux  2.2 (for i686)",  
+-  "specifix"        => "Specifix Linux",
+-  "ark"             => "Ark Linux",
++  "fedora-4"        => "Fedora Core 4 (Stentz)",
++  "rpath"           => "rPath Linux",
++  "ark"             => "Arkark Linux",
+ };
+   
+ sub check_lsb
+@@ -202,6 +205,28 @@
+   return -1;
+ }
+ 
++sub check_mandrake
++{
++  open MANDRAKE, "$gst_prefix/etc/mandrake-release" or return -1;
++  while (<MANDRAKE>)
++  {
++    $ver = $_;
++    chomp ($ver);
++    if ($ver =~ /^Linux Mandrake release (\S+)/)
++    {
++      close MANDRAKE;
++      return "mandrake-$1";
++    }
++    elsif ($ver =~ /^Mandrake( L|l)inux release ([\d\.]+)/i)
++    {
++      close MANDRAKE;
++      return "mandrake-$2";
++    }
++  }
++  close MANDRAKE;
++  return -1;
++}
++
+ sub check_mandriva
+ {
+   open MANDRIVA, "$gst_prefix/etc/mandriva-release" or return -1;
+@@ -224,26 +249,31 @@
+   return -1;
+ }
+ 
+-sub check_mandrake
++sub check_yoper
+ {
+-  open MANDRAKE, "$gst_prefix/etc/mandrake-release" or return -1;
+-  while (<MANDRAKE>)
+-  {
+-    $ver = $_;
+-    chomp ($ver);
+-    if ($ver =~ /^Linux Mandrake release (\S+)/)
+-    {
+-      close MANDRAKE;
+-      return "mandrake-$1";
+-    }
+-    elsif ($ver =~ /^Mandrake( L|l)inux release ([\d\.]+)/i)
+-    {
+-      close MANDRAKE;
+-      return "mandrake-$2";
+-    }
+-  }
+-  close MANDRAKE;
+-  return -1;
++   open YOPER, "$gst_prefix/etc/yoper-release" or return -1;
++   while (<YOPER>)
++   {
++     $ver = $_;
++     chomp ($ver);
++     if ($ver =~ m/Yoper (\S+)/)
++     {
++       close YOPER;
++       # find the first digit of our release
++       $mystring= ~m/(\d)/;
++       #store it in $fdigit
++       $fdigit= $1;
++       # the end of the release is marked with -2 so find the -
++       $end = index($ver,"-");
++       $start = index($ver,$fdigit);
++       # extract the substring into $newver
++       $newver= substr($ver,$start,$end-$start);
++       print $newver;
++       return "yoper-$newver";
++     }
++   }
++   close YOPER;
++   return -1;
+ }
+ 
+ sub check_blackpanther
+@@ -289,61 +319,28 @@
+     return -1;
+ }
+ 
+-sub check_yoper
++sub check_rpath
+ {
+-    open YOPER, "$gst_prefix/etc/yoper-release" or return -1;
+-    while (<YOPER>)
+-    {
+-      $ver = $_;
+-      chomp ($ver);
++  open RPATH, "$gst_prefix/etc/distro-release" or return -1;
+ 
+-      if ($ver =~ /^Yoper Linux (\S+)/)
+-      {
+-        close YOPER;
+-        return "yoper-$1";
+-      }
+-    }
+-
+-    close YOPER;
+-    return -1;
+-}
+-
+-sub check_specifix
+-{
+-  open SPECIFIX, "$gst_prefix/etc/distro-release" or return -1;
+-
+-  while (<SPECIFIX>)
++  while (<RPATH>)
+   {
+     $ver = $_;
+     chomp ($ver);
+ 
+-    if ($ver =~ /^Specifix Linux release (\S+)/)
++    if ($ver =~ /^rPath Linux/)
+     {
+-      close SPECIFIX;
+-      return "specifix";
++      close RPATH;
++      return "rpath";
+     }
+-  }
+-
+-  close SPECIFIX;
+-  return -1;
+-}
+-
+-sub check_ark
+-{
+-  open ARK, "$gst_prefix/etc/ark-release" or return -1;
+-  while (<ARK>)
+-  {
+-    $ver = $_;
+-    chomp ($ver);
+-
+-    if ($ver =~ /^Ark Linux/)
++    if ($ver =~ /Foresight/)
+     {
+-      close ARK;
+-      return "ark";
++      close RPATH;
++      return "rpath";
+     }
+   }
+ 
+-  close ARK;
++  close RPATH;
+   return -1;
+ }
+ 
+@@ -485,6 +482,25 @@
+   return -1;
+ }
+ 
++sub check_ark
++{
++  open ARK, "$gst_prefix/etc/ark-release" or return -1;
++  while (<ARK>)
++  {
++    $ver = $_;
++    chomp ($ver);
++
++    if ($ver =~ /^Ark Linux/)
++    {
++      close ARK;
++      return "ark";
++    }
++  }
++
++  close ARK;
++  return -1;
++}
++
+ sub check_freebsd
+ {
+   my ($sysctl_cmd, @output);
+@@ -542,9 +558,9 @@
+ 
+   my %check = (
+     # Red Hat check must run after Vine, Mandrake and Fedora, and Mandrake after BlackPanther
+-    "Linux" => [ \&check_lsb,      \&check_debian,   \&check_caldera, \&check_suse, \&check_blackpanther, \&check_vine,
+-                 \&check_fedora, \&check_yoper, \&check_mandrake, \&check_mandriva, \&check_conectiva, \&check_linuxppc, \&check_redhat,  \&check_openna,
+-                 \&check_turbolinux, \&check_slackware, \&check_vlos, \&check_gentoo, \&check_pld, \&check_specifix, \&check_archlinux, \&check_ark ],
++    "Linux" => [ \&check_lsb, \&check_debian, \&check_caldera, \&check_suse, \&check_blackpanther, \&check_vine,
++                 \&check_fedora, \&check_mandrake, \&check_mandriva, \&check_conectiva, \&check_linuxppc, \&check_redhat, \&check_openna,
++                 \&check_turbolinux, \&check_slackware, \&check_vlos, \&check_gentoo, \&check_pld, \&check_rpath, \&check_archlinux, \&check_ark ],
+     "FreeBSD" => [ \&check_freebsd ],
+     "SunOS"    => [ \&check_solaris ]
+                );
+--- knetworkconf/backends/network.pl.in	(revision 488946)
++++ knetworkconf/backends/network.pl.in	(revision 495373)
+@@ -147,8 +147,12 @@
+     if ($key)
+     {
+       $key = &gst_network_get_full_key ($key, $key_type);
+-      $command .= " key '$key'" if ($key);
++      $command .= " key '$key'";
+     }
++    else
++    {
++      $command .= " key off";
++    }
+ 
+     &gst_file_run ($command);
+   }
+@@ -493,7 +497,7 @@
+        "debian-3.0"   => "debian-2.2",
+        "debian-sarge" => "debian-2.2",
+        "ubuntu-5.04" => "debian-2.2",       
+-       "ubuntu-5.10" => "debian-2.2",       
++       "ubuntu-6.04" => "debian-2.2",       
+        "mandrake-7.1" => "debian-2.2",
+        "mandrake-7.2" => "debian-2.2",
+        "mandrake-9.0" => "debian-2.2",
+@@ -501,8 +505,10 @@
+        "mandrake-9.2" => "debian-2.2",
+        "mandrake-10.0" => "debian-2.2",
+        "mandrake-10.1" => "redhat-6.2",
+-	   "mandrake-10.2" => "redhat-6.2",
+-	   "mandriva-2006.0" => "redhat-6.2",
++       "mandrake-10.2" => "redhat-6.2",
++       "mandriva-2006.0" => "redhat-6.2",
++       "mandriva-2006.1" => "redhat-6.2",
++       "yoper-2.2"       => "redhat-6.2",
+        "blackpanther-4.0" => "debian-2.2",
+        "suse-7.0"     => "debian-2.2",
+        "suse-9.0"     => "redhat-6.2",
+@@ -515,19 +521,19 @@
+        "fedora-1"     => "redhat-6.2",
+        "fedora-2"     => "redhat-6.2",
+        "fedora-3"     => "redhat-6.2",
+-       "yoper-2.1"     => "redhat-6.2",
+-       "yoper-2.2"     => "redhat-6.2",       
+-       "specifix"     => "redhat-6.2",
++       "fedora-4"     => "redhat-6.2",
++       "rpath"        => "redhat-6.2",
+        "vine-3.0"     => "redhat-6.2",
+        "vine-3.1"     => "redhat-6.2",
++       "ark"          => "redhat-6.2",
+        "slackware-9.1.0" => "redhat-6.2",
+        "slackware-10.0.0" => "redhat-6.2",
+        "slackware-10.1.0" => "redhat-6.2",
++       "slackware-10.2.0" => "redhat-6.2",
+        "gentoo"       => "debian-2.2",
+        "vlos-1.2"     => "debian-2.2",
+        "freebsd-5"    => "debian-2.2",
+        "freebsd-6"    => "debian-2.2",
+-       "ark"          => "redhat-6.2",
+        );
+ 
+   return $cmd_map{$dist_map{$gst_dist}};
+@@ -1140,7 +1146,7 @@
+ 
+   while ($i = <$fd>)
+   {
+-    if ($i =~ /^iface_(.*)[ \t]*=/)
++    if ($i =~ /^config_([a-zA-Z0-9]*)[ \t]*=/)
+     {
+       push @ret, $1;
+     }
+@@ -1600,6 +1606,19 @@
+   return &gst_file_exists ("/usr/lib/pppd/$version/$plugin.so");
+ }
+ 
++sub gst_network_gentoo_parse_gateway
++{
++  my ($file, $iface) = @_;
++  my ($str);
++
++  $str = &gst_parse_confd_net ($file, "routes_$iface");
++
++  if ($str =~ /default[ \t]+(via|gw)[ \t]+([0-9\.\:]*)/)
++  {
++    return $2;
++  }
++}
++
+ sub gst_network_interfaces_get
+ {
+   my (%dist_attrib, %config_hash, %hash, %fn);
+@@ -1767,55 +1786,58 @@
+ 
+   my %dist_map =
+ 	 (
+-	  "redhat-6.0"   => \&gst_network_rh62_get_file,
+-	  "redhat-6.1"   => \&gst_network_rh62_get_file,
+-	  "redhat-6.2"   => \&gst_network_rh62_get_file,
+-	  "redhat-7.0"   => \&gst_network_rh62_get_file,
+-	  "redhat-7.1"   => \&gst_network_rh62_get_file,
+-	  "redhat-7.2"   => \&gst_network_rh72_get_file,
+-    "redhat-8.0"   => \&gst_network_rh72_get_file,
+-    "redhat-9"     => \&gst_network_rh72_get_file,
+-	  "openna-1.0"   => \&gst_network_rh62_get_file,
+-	  "mandrake-7.2" => \&gst_network_rh62_get_file,
+-		"mandrake-7.1" => \&gst_network_rh62_get_file,
+-		"mandrake-9.0" => \&gst_network_rh62_get_file,
+-		"mandrake-9.1" => \&gst_network_rh62_get_file,
+-		"mandrake-9.2" => \&gst_network_rh62_get_file,
+-    "mandrake-10.0" => \&gst_network_rh62_get_file,
+-    "mandrake-10.1" => \&gst_network_rh62_get_file,
+-	"mandrake-10.2" => \&gst_network_rh62_get_file,
+-	"mandriva-2006.0" => \&gst_network_rh62_get_file,
+-    "blackpanther-4.0" => \&gst_network_rh62_get_file,
+- 		"conectiva-9"  => \&gst_network_rh62_get_file,
+- 		"conectiva-10" => \&gst_network_rh62_get_file,
+-    "debian-2.2"   => \&gst_network_deb22_get_file,
+-    "debian-3.0"   => \&gst_network_deb22_get_file,
+-    "debian-sarge" => \&gst_network_deb22_get_file,
+-    "ubuntu-5.04" => \&gst_network_deb22_get_file,    
+-    "ubuntu-5.10" => \&gst_network_deb22_get_file,    
+-    "suse-7.0"     => \&gst_network_suse70_get_file,
+-    "suse-9.0"     => \&gst_network_deb22_get_file,
+-    "suse-9.1"     => \&gst_network_deb22_get_file,
+-	  "turbolinux-7.0"   => \&gst_network_rh62_get_file,
+-    "pld-1.0"      => \&gst_network_pld10_get_file,
+-    "pld-1.1"      => \&gst_network_pld10_get_file,
+-    "pld-1.99"     => \&gst_network_pld10_get_file,
+-    "fedora-1"     => \&gst_network_rh72_get_file,
+-    "fedora-2"     => \&gst_network_rh72_get_file,
+-    "fedora-3"     => \&gst_network_rh72_get_file,
+-    "yoper-2.1"     => \&gst_network_rh72_get_file,
+-    "yoper-2.2"     => \&gst_network_rh72_get_file,
+-    "specifix"     => \&gst_network_rh72_get_file,
+-    "vine-3.0"     => \&gst_network_rh62_get_file,
+-    "vine-3.1"     => \&gst_network_rh62_get_file,
+-    "slackware-9.1.0" => \&gst_network_deb22_get_file,
+-    "slackware-10.0.0" => \&gst_network_deb22_get_file,
+-    "slackware-10.1.0" => \&gst_network_deb22_get_file,
+-    "gentoo"       => \&gst_network_deb22_get_file,
+-    "freebsd-5"    => \&gst_network_deb22_get_file,
+-    "freebsd-6"    => \&gst_network_deb22_get_file,
+-    "ark"          => \&get_network_rh62_get_file,
+-	  );
++          "redhat-6.0"   => \&gst_network_rh62_get_file,
++          "redhat-6.1"   => \&gst_network_rh62_get_file,
++          "redhat-6.2"   => \&gst_network_rh62_get_file,
++          "redhat-7.0"   => \&gst_network_rh62_get_file,
++          "redhat-7.1"   => \&gst_network_rh62_get_file,
++          "redhat-7.2"   => \&gst_network_rh72_get_file,
++          "redhat-8.0"   => \&gst_network_rh72_get_file,
++          "redhat-9"     => \&gst_network_rh72_get_file,
++          "openna-1.0"   => \&gst_network_rh62_get_file,
++          "mandrake-7.2" => \&gst_network_rh62_get_file,
++          "mandrake-7.1" => \&gst_network_rh62_get_file,
++          "mandrake-9.0" => \&gst_network_rh62_get_file,
++          "mandrake-9.1" => \&gst_network_rh62_get_file,
++          "mandrake-9.2" => \&gst_network_rh62_get_file,
++          "mandrake-10.0" => \&gst_network_rh62_get_file,
++          "mandrake-10.1" => \&gst_network_rh62_get_file,
++          "mandrake-10.2" => \&gst_network_rh62_get_file,
++          "mandriva-2006.0" => \&gst_network_rh62_get_file,
++          "mandriva-2006.1" => \&gst_network_rh62_get_file,
++          "yoper-2.2"       => \&gst_network_rh62_get_file,
++          "blackpanther-4.0" => \&gst_network_rh62_get_file,
++          "conectiva-9"  => \&gst_network_rh62_get_file,
++          "conectiva-10" => \&gst_network_rh62_get_file,
++          "debian-2.2"   => \&gst_network_deb22_get_file,
++          "debian-3.0"   => \&gst_network_deb22_get_file,
++          "debian-sarge" => \&gst_network_deb22_get_file,
++          "ubuntu-5.04" => \&gst_network_deb22_get_file,    
++          "ubuntu-5.10" => \&gst_network_deb22_get_file,    
++          "ubuntu-6.04" => \&gst_network_deb22_get_file,    
++          "suse-7.0"     => \&gst_network_suse70_get_file,
++          "suse-9.0"     => \&gst_network_deb22_get_file,
++          "suse-9.1"     => \&gst_network_deb22_get_file,
++          "turbolinux-7.0"   => \&gst_network_rh62_get_file,
++          "pld-1.0"      => \&gst_network_pld10_get_file,
++          "pld-1.1"      => \&gst_network_pld10_get_file,
++          "pld-1.99"     => \&gst_network_pld10_get_file,
++          "fedora-1"     => \&gst_network_rh72_get_file,
++          "fedora-2"     => \&gst_network_rh72_get_file,
++          "fedora-3"     => \&gst_network_rh72_get_file,
++          "fedora-4"     => \&gst_network_rh72_get_file,
++          "rpath"        => \&gst_network_rh72_get_file,
++          "vine-3.0"     => \&gst_network_rh62_get_file,
++          "vine-3.1"     => \&gst_network_rh62_get_file,
++          "ark"          => \&gst_network_rh62_get_file,
++          "slackware-9.1.0" => \&gst_network_deb22_get_file,
++          "slackware-10.0.0" => \&gst_network_deb22_get_file,
++          "slackware-10.1.0" => \&gst_network_deb22_get_file,
++          "slackware-10.2.0" => \&gst_network_deb22_get_file,
++          "gentoo"       => \&gst_network_deb22_get_file,
++          "freebsd-5"    => \&gst_network_deb22_get_file,
++          "freebsd-6"    => \&gst_network_deb22_get_file,
++	 );
+ 
+   $proc = $dist_map{$gst_dist};
+ 
+@@ -2428,7 +2450,7 @@
+   else
+   {
+     $netconf = "/etc/conf.d/net";
+-    &gst_replace_sh ($netconf, "iface_$dev", "");
++    &gst_replace_sh ($netconf, "config_$dev", "");
+   }
+ }
+ 
+@@ -2514,7 +2536,7 @@
+ 
+   $res = &gst_replace_from_table ($dist_attrib{"fn"}, $dist_attrib{"table"},
+                                   $values_hash, $old_hash);
+-  
++
+   # if success saving the settings for the interface, set up immediatly.
+   &$proc ($values_hash, $old_hash, $$values_hash{"enabled"}, 0) if !$res;
+ 
+@@ -2579,9 +2601,10 @@
+   my $old_hash;
+   my %dist_attrib;
+   
+-  &gst_network_ensure_loopback ($values_hash);
+-
+   $old_hash = &gst_network_conf_get ();
++
++  &gst_network_ensure_loopback ($values_hash, $old_hash);
++
+   %dist_attrib = &gst_network_get_replace_table ();
+   $res = &gst_replace_from_table ($dist_attrib{"fn"}, $dist_attrib{"table"},
+                                   $values_hash, $old_hash);
+@@ -2985,16 +3008,24 @@
+   return &gst_replace_sh ($file, $key, $proto_name_to_suse90{$value});
+ }
+ 
++sub gst_network_gentoo_parse_bootproto
++{
++  my ($file, $dev) = @_;
++
++  return "dhcp" if (&gst_parse_confd_net ($file, "config_$dev") =~ /dhcp/i);
++  return "none";
++}
++
+ sub gst_network_gentoo_replace_bootproto
+ {
+   my ($file, $dev, $value) = @_;
+ 
+   return if ($dev =~ /^ppp/);
+ 
+-  return &gst_replace_split ($file, "iface_$dev", "[ \t]*=[ \t]*", "\"dhcp\"") if ($value ne "none");
++  return &gst_replace_confd_net ($file, "config_$dev", "dhcp") if ($value ne "none");
+ 
+   # replace with a fake IP address, I know it's a hack
+-  return &gst_replace_split ($file, "iface_$dev", "[ \t]*=[ \t]*", "\"0.0.0.0\"");
++  return &gst_replace_confd_net ($file, "config_$dev", "0.0.0.0");
+ }
+ 
+ sub gst_network_freebsd5_replace_bootproto
+@@ -3873,58 +3904,61 @@
+   my ($interface) = @_;
+   my $dev;
+   my %dist_map =
+-	 (
+-    "redhat-5.2"   => "lo",
+-	  "redhat-6.0"   => "lo",
+-	  "redhat-6.1"   => "lo",
+-	  "redhat-6.2"   => "lo",
+-	  "redhat-7.0"   => "lo",
+-	  "redhat-7.1"   => "lo",
+-	  "redhat-7.2"   => "lo",
+-    "redhat-8.0"   => "lo",
+-    "redhat-9"     => "",
+-	  "openna-1.0"   => "lo",
+-	  "mandrake-7.1" => "lo",
+-	  "mandrake-7.2" => "lo",
+-	  "mandrake-9.0" => "lo",
+-	  "mandrake-9.1" => "lo",
+-	  "mandrake-9.2" => "lo",
+-    "mandrake-10.0" => "lo",
+-    "mandrake-10.1" => "lo",
+-	"mandrake-10.2" => "lo",
+-	"mandriva-2006.0" => "lo",
+-    "blackpanther-4.0" => "lo",
+- 	  "conectiva-9"  => "lo",
+-    "conectiva-10" => "lo",
+-	  "debian-2.2"   => "lo",
+-    "debian-3.0"   => "lo",
+-    "debian-sarge" => "lo",
+-    "ubuntu-5.04" => "lo",    
+-    "ubuntu-5.10" => "lo",    
+-    "suse-7.0"     => "",
+-    "suse-9.0"     => "",
+-    "suse-9.1"     => "",
++         (
++          "redhat-5.2"   => "lo",
++          "redhat-6.0"   => "lo",
++          "redhat-6.1"   => "lo",
++          "redhat-6.2"   => "lo",
++          "redhat-7.0"   => "lo",
++          "redhat-7.1"   => "lo",
++          "redhat-7.2"   => "lo",
++          "redhat-8.0"   => "lo",
++          "redhat-9"     => "",
++          "openna-1.0"   => "lo",
++          "mandrake-7.1" => "lo",
++          "mandrake-7.2" => "lo",
++          "mandrake-9.0" => "lo",
++          "mandrake-9.1" => "lo",
++          "mandrake-9.2" => "lo",
++          "mandrake-10.0" => "lo",
++          "mandrake-10.1" => "lo",
++          "mandrake-10.2" => "lo",
++          "mandriva-2006.0" => "lo",
++          "mandriva-2006.1" => "lo",
++          "yoper-2.2"       => "lo",
++          "blackpanther-4.0" => "lo",
++          "conectiva-9"  => "lo",
++          "conectiva-10" => "lo",
++          "debian-2.2"   => "lo",
++          "debian-3.0"   => "lo",
++          "debian-sarge" => "lo",
++          "ubuntu-5.04" => "lo",    
++          "ubuntu-5.10" => "lo",    
++          "ubuntu-6.04" => "lo",    
++          "suse-7.0"     => "",
++          "suse-9.0"     => "",
++          "suse-9.1"     => "",
+ 	  "turbolinux-7.0"   => "lo",
+-    "pld-1.0"      => "lo",
+-    "pld-1.1"      => "lo",
+-    "pld-1.99"     => "lo",
+-    "fedora-1"     => "",
+-    "fedora-2"     => "",
+-    "fedora-3"     => "",
+-    "yoper-2.1"     => "",
+-    "yoper-2.2"     => "",
+-    "specifix"     => "",
+-    "vine-3.0"     => "lo",
+-    "vine-3.1"     => "lo",
+-    "slackware-9.1.0" => "",
+-    "slackware-10.0.0" => "",
+-    "slackware-10.1.0" => "",
+-    "gentoo"       => "",
+-    "vlos-1.2"     => "",
+-    "freebsd-5"    => "",
+-    "freebsd-6"    => "",
+-    "ark"          => "lo",
+-	  );
++          "pld-1.0"      => "lo",
++          "pld-1.1"      => "lo",
++          "pld-1.99"     => "lo",
++          "fedora-1"     => "",
++          "fedora-2"     => "",
++          "fedora-3"     => "",
++          "fedora-4"     => "",
++          "rpath"        => "",
++          "vine-3.0"     => "lo",
++          "vine-3.1"     => "lo",
++          "ark"          => "lo",
++          "slackware-9.1.0" => "",
++          "slackware-10.0.0" => "",
++          "slackware-10.1.0" => "",
++          "slackware-10.2.0" => "",
++          "gentoo"       => "",
++          "vlos-1.2"     => "",
++          "freebsd-5"    => "",
++          "freebsd-6"    => "",
++         );
+ 
+   $dev = $dist_map {$gst_dist};
+ 
+@@ -3967,18 +4001,31 @@
+   
+   push @$localhost, $alias;
+ }
++
++sub gst_network_statichost_remove_alias
++{
++  my ($localhost, $alias) = @_;
++  my $i;
++
++  for ($i = 0; $i < @$localhost; $i++) {
++    if ($$localhost[$i] eq $alias)
++    {
++      delete $$localhost[$i];
++      return;
++    }
++  }
++}
+   
+ sub gst_network_ensure_loopback_statichost
+ {
+-  my ($statichost, $hostname, $lo_ip) = @_;
++  my ($statichost, $hostname, $old_hostname, $lo_ip) = @_;
+   my $i;
+ 
+   if (exists $$statichost{$lo_ip})
+   {
+     my $localhost = $$statichost{$lo_ip};
++    &gst_network_statichost_remove_alias ($localhost, $old_hostname) if ($old_hostname);
+     &gst_network_statichost_add_alias ($localhost, $hostname);
+-    &gst_network_statichost_add_alias ($localhost, "localhost");
+-    &gst_network_statichost_add_alias ($localhost, "localhost.localdomain");
+   }
+   else
+   {
+@@ -3986,19 +4033,34 @@
+   }
+ }
+ 
+-# lo_ip is the ip for localhost (commonly 127.0.0.1).
++sub get_network_get_lo_ip
++{
++  my ($statichost) = @_;
++
++  foreach $i (keys %$statichost)
++  {
++    return $i if ($i =~ /^127\./);
++  }
++
++  return "127.0.0.1";
++}
++
+ sub gst_network_ensure_loopback
+ {
+   my $values_hash = $_[0];
+-  my $lo_ip = "127.0.0.1";
++  my $old_values_hash = $_[1];
+   my $interface = $$values_hash{"interface"};
+   my $hostname = $$values_hash{"hostname"};
+   my $statichost = $$values_hash{"statichost"};
++  my $lo_ip = &get_network_get_lo_ip ($statichost);
+ 
++  # needed for replacing hostname safely
++  my $old_hostname = $$old_values_hash{"hostname"};
++
+   &gst_report_enter ();
+   &gst_report ("network_ensure_lo");
+ 
+-  &gst_network_ensure_loopback_statichost ($statichost, $hostname, $lo_ip);
++  &gst_network_ensure_loopback_statichost ($statichost, $hostname, $old_hostname, $lo_ip);
+   &gst_network_ensure_loopback_interface ($interface, $lo_ip);
+ 
+   &gst_report_leave ();
+@@ -4007,58 +4069,61 @@
+ sub gst_network_get_parse_table
+ {
+   my %dist_map =
+-	 (
+-    "redhat-5.2"   => "redhat-6.2",
++         (
++          "redhat-5.2"   => "redhat-6.2",
+ 	  "redhat-6.0"   => "redhat-6.2",
+ 	  "redhat-6.1"   => "redhat-6.2",
+ 	  "redhat-6.2"   => "redhat-6.2",
+ 	  "redhat-7.0"   => "redhat-7.0",
+ 	  "redhat-7.1"   => "redhat-7.0",
+ 	  "redhat-7.2"   => "redhat-7.2",
+-    "redhat-8.0"   => "redhat-7.2",
+-    "redhat-9"     => "redhat-7.2",
++          "redhat-8.0"   => "redhat-7.2",
++          "redhat-9"     => "redhat-7.2",
+ 	  "openna-1.0"   => "redhat-6.2",
+ 	  "mandrake-7.1" => "redhat-6.2",
+ 	  "mandrake-7.2" => "redhat-6.2",
+-    "mandrake-9.0" => "redhat-7.0",
+-    "mandrake-9.1" => "redhat-7.0",
+-    "mandrake-9.2" => "redhat-7.0",
+-    "mandrake-10.0" => "redhat-7.0",
+-    "mandrake-10.1" => "redhat-7.0",
+-	"mandrake-10.2" => "redhat-7.0",
+-	"mandriva-2006.0" => "redhat-7.0",
+-    "blackpanther-4.0" => "redhat-7.0",
+-    "conectiva-9"  => "redhat-7.0", 
+-    "conectiva-10" => "redhat-7.0", 
+-    "debian-2.2"   => "debian-2.2",
+-    "debian-3.0"   => "debian-2.2",
+-    "debian-sarge" => "debian-2.2",
+-    "ubuntu-5.04" => "debian-2.2",
+-    "ubuntu-5.10" => "debian-2.2",
+-    "suse-7.0"     => "suse-7.0",
+-    "suse-9.0"     => "suse-9.0",
+-    "suse-9.1"     => "suse-9.0",
+-	  "turbolinux-7.0"  => "redhat-7.0",
+-    "pld-1.0"      => "pld-1.0",
+-    "pld-1.1"      => "pld-1.0",
+-    "pld-1.99"     => "pld-1.0",
+-    "fedora-1"     => "redhat-7.2",
+-    "fedora-2"     => "redhat-7.2",
+-    "fedora-3"     => "redhat-7.2",
+-    "yoper-2.1"     => "redhat-7.2",
+-    "yoper-2.2"     => "redhat-7.2",
+-    "specifix"     => "redhat-7.2",
+-    "vine-3.0"     => "redhat-7.0",
+-    "vine-3.1"     => "redhat-7.0",
+-    "slackware-9.1.0" => "slackware-9.1.0",
+-    "slackware-10.0.0" => "slackware-9.1.0",
+-    "slackware-10.1.0" => "slackware-9.1.0",
+-    "gentoo"       => "gentoo",
+-    "vlos-1.2"     => "vlos-1.2",
+-    "freebsd-5"    => "freebsd-5",
+-    "freebsd-6"    => "freebsd-5",
+-    "ark"          => "ark",
+-	  );
++          "mandrake-9.0" => "redhat-7.0",
++          "mandrake-9.1" => "redhat-7.0",
++          "mandrake-9.2" => "redhat-7.0",
++          "mandrake-10.0" => "redhat-7.0",
++          "mandrake-10.1" => "redhat-7.0",
++          "mandrake-10.2" => "redhat-7.0",
++          "mandriva-2006.0" => "redhat-7.0",
++          "mandriva-2006.1" => "redhat-7.0",
++          "yoper-2.2"       => "redhat-7.0",
++          "blackpanther-4.0" => "redhat-7.0",
++          "conectiva-9"  => "redhat-7.0", 
++          "conectiva-10" => "redhat-7.0", 
++          "debian-2.2"   => "debian-2.2",
++          "debian-3.0"   => "debian-2.2",
++          "debian-sarge" => "debian-2.2",
++          "ubuntu-5.04" => "debian-2.2",
++          "ubuntu-5.10" => "debian-2.2",
++          "ubuntu-6.04" => "debian-2.2",
++          "suse-7.0"     => "suse-7.0",
++          "suse-9.0"     => "suse-9.0",
++          "suse-9.1"     => "suse-9.0",
++          "turbolinux-7.0"  => "redhat-7.0",
++          "pld-1.0"      => "pld-1.0",
++          "pld-1.1"      => "pld-1.0",
++          "pld-1.99"     => "pld-1.0",
++          "fedora-1"     => "redhat-7.2",
++          "fedora-2"     => "redhat-7.2",
++          "fedora-3"     => "redhat-7.2",
++          "fedora-4"     => "redhat-7.2",
++          "rpath"        => "redhat-7.2",
++          "vine-3.0"     => "redhat-7.0",
++          "vine-3.1"     => "redhat-7.0",
++          "ark"          => "redhat-7.0",
++          "slackware-9.1.0" => "slackware-9.1.0",
++          "slackware-10.0.0" => "slackware-9.1.0",
++          "slackware-10.1.0" => "slackware-9.1.0",
++          "slackware-10.2.0" => "slackware-9.1.0",
++          "gentoo"       => "gentoo",
++          "vlos-1.2"     => "gentoo",
++          "freebsd-5"    => "freebsd-5",
++          "freebsd-6"    => "freebsd-5",
++         );
+ 
+   my %dist_tables =
+ 	 (
+@@ -4357,40 +4422,8 @@
+     {
+       fn =>
+       {
+-        HOSTNAME    => "/etc/hostname",
+-        DOMAINNAME  => "/etc/dnsdomainname",
+-        NET         => "/etc/conf.d/net",
+-        RESOLV_CONF => "/etc/resolv.conf",
+-        HOSTS       => "/etc/hosts",
+-        SMB_CONF    => "/etc/samba/smb.conf"
+-      },
+-      table =>
+-      [
+-       [ "hostname",      \&gst_parse_line_first,                    HOSTNAME ],
+-       [ "domain",        \&gst_parse_line_first,                    DOMAINNAME ],
+-       [ "domain",        \&gst_parse_split_first_str,               RESOLV_CONF,  "domain", "[ \t]+" ],
+-       [ "nameserver",    \&gst_parse_split_all_unique_hash_comment, RESOLV_CONF,  "nameserver", "[ \t]+" ],
+-       [ "searchdomain",  \&gst_parse_split_first_array_unique,      RESOLV_CONF,  "search", "[ \t]+", "[ \t]+" ],
+-       [ "statichost",    \&gst_parse_split_hash,                    HOSTS,        "[ \t]+", "[ \t]+" ],
+-       [ "workgroup",     \&gst_parse_ini,                           SMB_CONF,     "global", "workgroup" ],
+-       [ "smbdesc",       \&gst_network_rh_get_smb_desc,             SMB_CONF,     "global", "server string", "%hostname%" ],
+-       [ "winsserver",    \&gst_parse_ini,                           SMB_CONF,     "global", "wins server" ],
+-       [ "winsuse",       \&gst_parse_ini_bool,                      SMB_CONF,     "global", "wins support" ],
+-       [ "smbuse",        \&gst_service_gentoo_get_status,           "samba" ],
+-       [ "smbinstalled",  \&gst_service_installed,                   "samba" ],
+-       [ "dialinstalled", \&gst_parse_trivial, 1 ],
+-       [ "gatewaydev",    \&gst_parse_sh_re,                         NET, gateway, "^(.*)\/" ],
+-       [ "gateway",       \&gst_parse_sh_re,                         NET, gateway, "^.*\/([0-9\.]*)\$" ],
+-       [ "interface",     \&gst_network_interfaces_get ],
+-       ]
+-     },
+-
+-    "vlos-1.2" =>
+-    {
+-      fn =>
+-      {
+         HOSTNAME    => "/etc/conf.d/hostname",
+-        DOMAINNAME  => "/etc/dnsdomainname",
++        DOMAINNAME  => "/etc/conf.d/domainname",
+         NET         => "/etc/conf.d/net",
+         RESOLV_CONF => "/etc/resolv.conf",
+         HOSTS       => "/etc/hosts",
+@@ -4398,8 +4431,8 @@
+       },
+       table =>
+       [
+-       [ "hostname",      \&gst_parse_sh_re,                    HOSTNAME, "HOSTNAME", "^(.*)" ],
+-       [ "domain",        \&gst_parse_line_first,                    DOMAINNAME ],
++       [ "hostname",      \&gst_parse_sh,                            HOSTNAME,     "HOSTNAME" ],
++       [ "domain",        \&gst_parse_sh,                            DOMAINNAME,   "DNSDOMAIN" ],
+        [ "domain",        \&gst_parse_split_first_str,               RESOLV_CONF,  "domain", "[ \t]+" ],
+        [ "nameserver",    \&gst_parse_split_all_unique_hash_comment, RESOLV_CONF,  "nameserver", "[ \t]+" ],
+        [ "searchdomain",  \&gst_parse_split_first_array_unique,      RESOLV_CONF,  "search", "[ \t]+", "[ \t]+" ],
+@@ -4411,8 +4444,8 @@
+        [ "smbuse",        \&gst_service_gentoo_get_status,           "samba" ],
+        [ "smbinstalled",  \&gst_service_installed,                   "samba" ],
+        [ "dialinstalled", \&gst_parse_trivial, 1 ],
+-       [ "gatewaydev",    \&gst_parse_sh_re,                         NET, gateway, "^(.*)\/" ],
+-       [ "gateway",       \&gst_parse_sh_re,                         NET, gateway, "^.*\/([0-9\.]*)\$" ],
++       [ "gateway",       \&gst_network_get_default_gateway ],
++       [ "gatewaydev",    \&gst_network_get_default_gatewaydev ],
+        [ "interface",     \&gst_network_interfaces_get ],
+        ]
+      },
+@@ -4445,41 +4478,6 @@
+        [ "gatewaydev",    \&gst_network_get_gateway_dev_from_address, "%interface%", "%gateway%" ],
+        ]
+      },
+-
+-	  "ark" =>
+-	  {
+-	    fn =>
+-	    {
+-        SYSCONFIG_NW => "/etc/sysconfig/network",
+-        RESOLV_CONF  => "/etc/resolv.conf",
+-        HOST_CONF    => "/etc/host.conf",
+-        HOSTS        => "/etc/hosts",
+-        SMB_CONF     => "/etc/samba/smb.conf",
+-      },
+-	    table =>
+-		   [
+-		    [ "hostname",      \&gst_parse_sh,                SYSCONFIG_NW, HOSTNAME ],
+-        [ "gateway",       \&gst_parse_sh,                SYSCONFIG_NW, GATEWAY ],
+-        [ "gatewaydev",    \&gst_parse_sh,                SYSCONFIG_NW, GATEWAYDEV ],
+-        [ "userifacectl",  \&gst_parse_trivial,           1 ],
+-		    [ "nameserver",    \&gst_parse_split_all_unique_hash_comment, RESOLV_CONF,  "nameserver", "[ \t]+" ],
+-		    [ "searchdomain",  \&gst_parse_split_first_array_unique, RESOLV_CONF,  "search", "[ \t]+", "[ \t]+" ],
+-		    [ "domain",        \&gst_parse_split_first_str,   RESOLV_CONF,  "domain", "[ \t]+" ],
+-		    [ "order",         \&gst_parse_split_first_array, HOST_CONF,    "order", "[ \t]+", ",[ \t]*" ],
+-		    [ "hostmatch",     \&gst_parse_split_first_bool,  HOST_CONF,    "multi", "[ \t]+" ],
+-		    [ "statichost",    \&gst_parse_split_hash,        HOSTS,        "[ \t]+", "[ \t]+" ],
+-		    [ "workgroup",     \&gst_parse_ini,               SMB_CONF,     "global", "workgroup" ],     
+-		    [ "smbdesc",       \&gst_network_rh_get_smb_desc, SMB_CONF,   "global", "server string", "%hostname%" ],
+-		    [ "winsserver",    \&gst_parse_ini,               SMB_CONF,     "global", "wins server" ],
+-		    [ "winsuse",       \&gst_parse_ini_bool,          SMB_CONF,     "global", "wins support" ],
+-        [ "smbuse",        \&gst_service_sysv_get_status_any, "smbd", "nmbd" ],
+-        [ "smbinstalled",  \&gst_service_sysv_installed,  "smb" ],
+-        [ "smartdhcpcd",   \&gst_file_tool_installed,     "dhclient" ],
+-        [ "dialinstalled", \&gst_file_tool_installed,     "kppp" ],
+-		    [ "interface",     \&gst_network_interfaces_get ]
+-		    ]
+-			 },
+-
+    );
+   
+   my $dist = $dist_map{$gst_dist};
+@@ -4492,58 +4490,61 @@
+ sub gst_network_get_interface_parse_table
+ {
+   my %dist_map =
+-	 (
+-    "redhat-5.2"   => "redhat-6.2",
++         (
++          "redhat-5.2"   => "redhat-6.2",
+ 	  "redhat-6.0"   => "redhat-6.2",
+ 	  "redhat-6.1"   => "redhat-6.2",
+ 	  "redhat-6.2"   => "redhat-6.2",
+ 	  "redhat-7.0"   => "redhat-6.2",
+ 	  "redhat-7.1"   => "redhat-6.2",
+ 	  "redhat-7.2"   => "redhat-7.2",
+-    "redhat-8.0"   => "redhat-8.0",
+-    "redhat-9"     => "redhat-8.0",
++          "redhat-8.0"   => "redhat-8.0",
++          "redhat-9"     => "redhat-8.0",
+ 	  "openna-1.0"   => "redhat-6.2",
+ 	  "mandrake-7.1" => "redhat-6.2",
+-    "mandrake-7.2" => "redhat-6.2",
+-    "mandrake-9.0" => "mandrake-9.0",
+-    "mandrake-9.1" => "mandrake-9.0",
+-    "mandrake-9.2" => "mandrake-9.0",
+-    "mandrake-10.0" => "mandrake-9.0",
+-    "mandrake-10.1" => "mandrake-9.0",
+-	"mandrake-10.2" => "mandrake-9.0",
+-	"mandriva-2006.0" => "mandrake-9.0",
+-    "blackpanther-4.0" => "mandrake-9.0",
+-    "conectiva-9"  => "conectiva-9",
+-    "conectiva-10" => "conectiva-9",
+-    "debian-2.2"   => "debian-2.2",
+-    "debian-3.0"   => "debian-3.0",
+-    "debian-sarge" => "debian-3.0",
+-    "ubuntu-5.04" => "debian-3.0",
+-    "ubuntu-5.10" => "debian-3.0",
+-    "suse-7.0"     => "suse-7.0",
+-    "suse-9.0"     => "suse-9.0",
+-    "suse-9.1"     => "suse-9.0",
+-	  "turbolinux-7.0"   => "redhat-6.2",
+-    "pld-1.0"      => "pld-1.0",
+-    "pld-1.1"      => "pld-1.0",
+-    "pld-1.99"     => "pld-1.0",
+-    "fedora-1"     => "redhat-7.2",
+-    "fedora-2"     => "redhat-7.2",
+-    "fedora-3"     => "redhat-7.2",
+-    "yoper-2.1"     => "redhat-7.2",    
+-    "yoper-2.2"     => "redhat-7.2",    
+-    "specifix"     => "redhat-7.2",
+-    "vine-3.0"     => "vine-3.0",
+-    "vine-3.1"     => "vine-3.0",
+-    "slackware-9.1.0" => "slackware-9.1.0",
+-    "slackware-10.0.0" => "slackware-9.1.0",
+-    "slackware-10.1.0" => "slackware-9.1.0",
+-    "gentoo"       => "gentoo",
+-    "vlos-1.2"     => "vlos-1.2",
+-    "freebsd-5"    => "freebsd-5",
+-    "freebsd-6"    => "freebsd-5",
+-    "ark"          => "ark",
+-	  );
++          "mandrake-7.2" => "redhat-6.2",
++          "mandrake-9.0" => "mandrake-9.0",
++          "mandrake-9.1" => "mandrake-9.0",
++          "mandrake-9.2" => "mandrake-9.0",
++          "mandrake-10.0" => "mandrake-9.0",
++          "mandrake-10.1" => "mandrake-9.0",
++          "mandrake-10.2" => "mandrake-9.0",
++          "mandriva-2006.0" => "mandrake-9.0",
++          "mandriva-2006.1" => "mandrake-9.0",
++          "yoper-2.2"       => "redhat-6.2",
++          "blackpanther-4.0" => "mandrake-9.0",
++          "conectiva-9"  => "conectiva-9",
++          "conectiva-10" => "conectiva-9",
++          "debian-2.2"   => "debian-2.2",
++          "debian-3.0"   => "debian-3.0",
++          "debian-sarge" => "debian-3.0",
++          "ubuntu-5.04" => "debian-3.0",
++          "ubuntu-5.10" => "debian-3.0",
++          "ubuntu-6.04" => "debian-3.0",
++          "suse-7.0"     => "suse-7.0",
++          "suse-9.0"     => "suse-9.0",
++          "suse-9.1"     => "suse-9.0",
++          "turbolinux-7.0"   => "redhat-6.2",
++          "pld-1.0"      => "pld-1.0",
++          "pld-1.1"      => "pld-1.0",
++          "pld-1.99"     => "pld-1.0",
++          "fedora-1"     => "redhat-7.2",
++          "fedora-2"     => "redhat-7.2",
++          "fedora-3"     => "redhat-7.2",
++          "fedora-4"     => "redhat-7.2",
++          "rpath"        => "redhat-7.2",
++          "vine-3.0"     => "vine-3.0",
++          "vine-3.1"     => "vine-3.0",
++          "ark"          => "vine-3.0",
++          "slackware-9.1.0" => "slackware-9.1.0",
++          "slackware-10.0.0" => "slackware-9.1.0",
++          "slackware-10.1.0" => "slackware-9.1.0",
++          "slackware-10.2.0" => "slackware-9.1.0",
++          "gentoo"       => "gentoo",
++          "vlos-1.2"     => "gentoo",
++          "freebsd-5"    => "freebsd-5",
++          "freebsd-6"    => "freebsd-5",
++         );
+   
+   my %dist_tables =
+ 	 (
+@@ -5197,9 +5198,9 @@
+        [ "gateway",            \&gst_network_get_gateway,            RC_INET_CONF, GATEWAY, "%address%", "%netmask%" ],
+        [ "auto",               \&gst_network_slackware91_get_auto,   [RC_INET, RC_LOCAL, IFACE]],
+        [ "bootproto",          \&gst_network_slackware91_parse_bootproto, [RC_INET_CONF, IFACE]],
+-       [ "essid",              \&gst_parse_wireless_opts,            [ WIRELESS, IFACE], \&gst_network_get_wireless_ifaces, ESSID ],
+-       [ "key_type",           \&gst_network_get_wep_key_type,      [ \&gst_parse_wireless_opts, [ WIRELESS, IFACE], \&gst_network_get_wireless_ifaces, KEY ]],
+-       [ "key",                \&gst_network_get_wep_key,           [ \&gst_parse_wireless_opts, [ WIRELESS, IFACE], \&gst_network_get_wireless_ifaces, KEY ]],
++       [ "essid",              \&gst_parse_wireless_opts,            [ WIRELESS, IFACE ], \&gst_network_get_wireless_ifaces, ESSID ],
++       [ "key_type",           \&gst_network_get_wep_key_type,      [ \&gst_parse_wireless_opts, WIRELESS, IFACE, \&gst_network_get_wireless_ifaces, KEY ]],
++       [ "key",                \&gst_network_get_wep_key,           [ \&gst_parse_wireless_opts, WIRELESS, IFACE, \&gst_network_get_wireless_ifaces, KEY ]],
+        [ "enabled",            \&gst_network_interface_active,       IFACE, \&gst_network_active_interfaces_get ],
+        # Modem stuff
+        [ "update_dns",         \&gst_network_check_type,            [IFACE, "modem", \&gst_parse_kw, PPP_OPTIONS, "usepeerdns" ]],
+@@ -5233,51 +5234,6 @@
+         PPPNET       => "/etc/conf.d/net.#iface#",
+         INIT         => "net.#iface#",
+         IFACE        => "#iface#",
+-        WIRELESS     => "/etc/pcmcia/wireless.opts",
+-      },
+-      table =>
+-      [
+-       [ "auto",               \&gst_service_gentoo_get_service_status, INIT, "default" ],
+-       [ "user",               \&gst_parse_trivial,                  0 ], # not supported.
+-       [ "dev",                \&gst_parse_trivial,                  IFACE ],
+-       [ "address",            \&gst_parse_sh_re,                    NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ],
+-       [ "netmask",            \&gst_parse_sh_re,                    NET, "iface_%dev%", "netmask[ \t]+([0-9\.]*)" ],
+-       [ "remote_address",     \&gst_parse_sh_re,                    NET, "iface_%dev%", "dest_address[ \t]+([0-9\.]*)" ],
+-       [ "gateway",            \&gst_parse_sh_re,                    NET, "gateway", "%dev%/([0-9\.\:]*)" ],
+-       [ "enabled",            \&gst_network_interface_active,       IFACE, \&gst_network_active_interfaces_get ],
+-       [ "bootproto",          \&gst_network_parse_bootproto,        NET, "iface_%dev%" ],
+-       [ "essid",              \&gst_parse_wireless_opts,            [ WIRELESS, IFACE], \&gst_network_get_wireless_ifaces, ESSID ],
+-       [ "key_type",           \&gst_network_get_wep_key_type,       [ \&gst_parse_wireless_opts, [ WIRELESS, IFACE], \&gst_network_get_wireless_ifaces, KEY ]],
+-       [ "key",                \&gst_network_get_wep_key,            [ \&gst_parse_wireless_opts, [ WIRELESS, IFACE], \&gst_network_get_wireless_ifaces, KEY ]],
+-       # modem stuff
+-       [ "update_dns",         \&gst_parse_sh_bool,                  PPPNET, PEERDNS ],
+-       [ "mtu",                \&gst_parse_sh,                       PPPNET, MTU ],
+-       [ "mru",                \&gst_parse_sh,                       PPPNET, MRU ],
+-       [ "serial_port",        \&gst_parse_sh,                       PPPNET, MODEMPORT ],
+-       [ "serial_speed",       \&gst_parse_sh,                       PPPNET, LINESPEED ],
+-       [ "login",              \&gst_parse_sh,                       PPPNET, USERNAME ],
+-       [ "password",           \&gst_parse_sh,                       PPPNET, PASSWORD ],
+-       [ "ppp_options",        \&gst_parse_sh,                       PPPNET, PPPOPTIONS ],
+-       [ "set_default_gw",     \&gst_parse_sh_bool,                  PPPNET, DEFROUTE ],
+-       [ "debug",              \&gst_parse_sh_bool,                  PPPNET, DEBUG ],
+-       [ "persist",            \&gst_parse_sh_bool,                  PPPNET, PERSIST ],
+-       [ "serial_escapechars", \&gst_parse_sh_bool,                  PPPNET, ESCAPECHARS ],
+-       [ "serial_hwctl",       \&gst_parse_sh_bool,                  PPPNET, HARDFLOWCTL ],
+-       [ "external_line",      \&gst_parse_sh_re,                    PPPNET, NUMBER, "^([0-9*#]*)wW" ],
+-       [ "phone_number",       \&gst_parse_sh_re,                    PPPNET, NUMBER, "w?([0-9]*)\$" ],
+-       [ "volume",             \&gst_parse_sh_re,                    PPPNET, INITSTRING, "^at.*[ml]([0-3])" ],
+-      ]
+-    },
+-
+-    "vlos-1.2" =>
+-    {
+-      ifaces_get => \&gst_network_gentoo_ifaces_get_existing,
+-      fn =>
+-      {
+-        NET          => "/etc/conf.d/net",
+-        PPPNET       => "/etc/conf.d/net.#iface#",
+-        INIT         => "net.#iface#",
+-        IFACE        => "#iface#",
+         WIRELESS     => "/etc/conf.d/wireless",
+       },
+       table =>
+@@ -5285,12 +5241,13 @@
+        [ "auto",               \&gst_service_gentoo_get_service_status, INIT, "default" ],
+        [ "user",               \&gst_parse_trivial,                  0 ], # not supported.
+        [ "dev",                \&gst_parse_trivial,                  IFACE ],
+-       [ "address",            \&gst_parse_sh_re,                    NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ],
+-       [ "netmask",            \&gst_parse_sh_re,                    NET, "iface_%dev%", "netmask[ \t]+([0-9\.]*)" ],
+-       [ "remote_address",     \&gst_parse_sh_re,                    NET, "iface_%dev%", "dest_address[ \t]+([0-9\.]*)" ],
+-       [ "gateway",            \&gst_parse_sh_re,                    NET, "gateway", "%dev%/([0-9\.\:]*)" ],
++       [ "address",            \&gst_parse_confd_net_re,             NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ],
++       [ "netmask",            \&gst_parse_confd_net_re,             NET, "config_%dev%", "netmask[ \t]+([0-9\.]*)" ],
++       [ "remote_address",     \&gst_parse_confd_net_re,             NET, "config_%dev%", "dest_address[ \t]+([0-9\.]*)" ],
++#       [ "gateway",            \&gst_parse_sh_re,                    NET, "gateway", "%dev%/([0-9\.\:]*)" ],
++       [ "gateway",            \&gst_network_gentoo_parse_gateway,   [ NET, IFACE ]],
+        [ "enabled",            \&gst_network_interface_active,       IFACE, \&gst_network_active_interfaces_get ],
+-       [ "bootproto",          \&gst_network_parse_bootproto,        NET, "iface_%dev%" ],
++       [ "bootproto",          \&gst_network_gentoo_parse_bootproto, [ NET, IFACE ]],
+        [ "essid",              \&gst_parse_sh,                       WIRELESS, "essid_%dev%" ],
+        [ "key_type",           \&gst_network_get_wep_key_type,       [ \&gst_parse_sh, WIRELESS, "key_%essid%" ]],
+        [ "key",                \&gst_network_get_wep_key,            [ \&gst_parse_sh, WIRELESS, "key_%essid%" ]],
+@@ -5314,7 +5271,6 @@
+       ]
+     },
+ 
+-
+     "freebsd-5" =>
+     {
+       ifaces_get => \&gst_network_freebsd_ifaces_get_existing,
+@@ -5381,48 +5337,52 @@
+ 	  "redhat-7.0"   => "redhat-7.0",
+ 	  "redhat-7.1"   => "redhat-7.0",
+ 	  "redhat-7.2"   => "redhat-7.2",
+-    "redhat-8.0"   => "redhat-7.2",
+-    "redhat-9"     => "redhat-7.2",
++          "redhat-8.0"   => "redhat-7.2",
++          "redhat-9"     => "redhat-7.2",
+ 	  "mandrake-7.1" => "redhat-6.2",
+ 	  "mandrake-7.2" => "redhat-6.2",
+ 	  "mandrake-9.0" => "redhat-7.0",
+ 	  "mandrake-9.1" => "redhat-7.0",
+ 	  "mandrake-9.2" => "redhat-7.0",
+-    "mandrake-10.0" => "redhat-7.0",
+-    "mandrake-10.1" => "redhat-7.0",
+-	"mandrake-10.2" => "redhat-7.0",
+-	"mandriva-2006.0" => "redhat-7.0",
+-    "blackpanther-4.0" => "redhat-7.0",
++          "mandrake-10.0" => "redhat-7.0",
++          "mandrake-10.1" => "redhat-7.0",
++          "mandrake-10.2" => "redhat-7.0",
++          "mandriva-2006.0" => "redhat-7.0",
++          "mandriva-2006.1" => "redhat-7.0",
++          "yoper-2.2"       => "redhat-7.0",
++          "blackpanther-4.0" => "redhat-7.0",
+  	  "conectiva-9"  => "redhat-7.0",
+  	  "conectiva-10" => "redhat-7.0",
+-    "debian-2.2"   => "debian-2.2",
+-    "debian-3.0" => "debian-2.2",
+-    "debian-sarge" => "debian-2.2",
+-    "ubuntu-5.04" => "debian-2.2",
+-    "ubuntu-5.10" => "debian-2.2",
+-    "suse-7.0"     => "suse-7.0",
+-    "suse-9.0"     => "suse-9.0",
+-    "suse-9.1"     => "suse-9.0",
++          "debian-2.2"   => "debian-2.2",
++          "debian-3.0" => "debian-2.2",
++          "debian-sarge" => "debian-2.2",
++          "ubuntu-5.04" => "debian-2.2",
++          "ubuntu-5.10" => "debian-2.2",
++          "ubuntu-6.04" => "debian-2.2",
++          "suse-7.0"     => "suse-7.0",
++          "suse-9.0"     => "suse-9.0",
++          "suse-9.1"     => "suse-9.0",
+ 	  "turbolinux-7.0"   => "redhat-7.0",
+-    "pld-1.0"      => "pld-1.0",
+-    "pld-1.1"      => "pld-1.0",
+-    "pld-1.99"     => "pld-1.0",
+-    "fedora-1"     => "redhat-7.2",
+-    "fedora-2"     => "redhat-7.2",
+-    "fedora-3"     => "redhat-7.2",
+-    "yoper-2.1"     => "redhat-7.2",
+-    "yoper-2.2"     => "redhat-7.2",
+-    "specifix"     => "redhat-7.2",
+-    "vine-3.0"     => "redhat-7.0",
+-    "vine-3.1"     => "redhat-7.0",
+-    "slackware-9.1.0" => "slackware-9.1.0",
+-    "slackware-10.0.0" => "slackware-9.1.0",
+-    "slackware-10.1.0" => "slackware-9.1.0",
+-    "gentoo"       => "gentoo",
+-    "vlos-1.2"     => "vlos-1.2",
+-    "freebsd-5"    => "freebsd-5",
+-    "freebsd-6"    => "freebsd-5",
+-	  );
++          "pld-1.0"      => "pld-1.0",
++          "pld-1.1"      => "pld-1.0",
++          "pld-1.99"     => "pld-1.0",
++          "fedora-1"     => "redhat-7.2",
++          "fedora-2"     => "redhat-7.2",
++          "fedora-3"     => "redhat-7.2",
++          "fedora-4"     => "redhat-7.2",
++          "rpath"        => "redhat-7.2",
++          "vine-3.0"     => "redhat-7.0",
++          "vine-3.1"     => "redhat-7.0",
++          "ark"          => "redhat-7.0",
++          "slackware-9.1.0" => "slackware-9.1.0",
++          "slackware-10.0.0" => "slackware-9.1.0",
++          "slackware-10.1.0" => "slackware-9.1.0",
++          "slackware-10.2.0" => "slackware-9.1.0",
++          "gentoo"       => "gentoo",
++          "vlos-1.2"     => "gentoo",
++          "freebsd-5"    => "freebsd-5",
++          "freebsd-6"    => "freebsd-5",
++         );
+ 
+   my %dist_tables =
+ 	 (
+@@ -5708,41 +5668,8 @@
+     {
+       fn =>
+       {
+-        HOSTNAME    => "/etc/hostname",
+-        DOMAINNAME  => "/etc/dnsdomainname",
+-        NET         => "/etc/conf.d/net",
+-        RESOLV_CONF => "/etc/resolv.conf",
+-        HOSTS       => "/etc/hosts",
+-        SMB_CONF    => "/etc/samba/smb.conf"
+-      },
+-      table =>
+-      [
+-       [ "hostname",      \&gst_replace_line_first,       HOSTNAME ],
+-       [ "hostname",      \&gst_network_run_hostname ],
+-       [ "gateway",       \&gst_network_route_set_default_gw, "%gatewaydev%" ],
+-       [ "domain",        \&gst_replace_line_first,       DOMAINNAME ],
+-       [ "domain",        \&gst_replace_join_first_str,   RESOLV_CONF,  "domain", "[ \t]+" ],
+-       [ "nameserver",    \&gst_replace_join_all,         RESOLV_CONF,  "nameserver", "[ \t]+" ],
+-       [ "searchdomain",  \&gst_replace_join_first_array, RESOLV_CONF,  "search", "[ \t]+", "[ \t]+" ],
+-       [ "statichost",    \&gst_replace_join_hash,        HOSTS,        "[ \t]+", "[ \t]+" ],
+-       [ "workgroup",     \&gst_replace_ini,              SMB_CONF,     "global", "workgroup" ],
+-       [ "smbdesc",       \&gst_replace_ini,              SMB_CONF,     "global", "server string", "%hostname%" ],
+-       [ "winsserver",    \&gst_replace_ini,              SMB_CONF,     "global", "wins server" ],
+-       [ "winsuse",       \&gst_replace_ini_bool,         SMB_CONF,     "global", "wins support" ],
+-       [ "smbuse",        \&gst_service_gentoo_set_status, "samba", 1 ],
+-       # first set the gateway to something like "eth0", then add the IP address like "eth0/1.1.1.1"
+-       [ "gatewaydev",    \&gst_replace_sh,               NET, gateway ],
+-       [ "gateway",       \&gst_replace_sh_re,            NET, gateway, "\/[0-9\.]*\$", "/%gateway%" ],
+-       [ "interface",     \&gst_network_interfaces_set,   OLD_HASH ]
+-      ]
+-    },
+-
+-    "vlos-1.2" =>
+-    {
+-      fn =>
+-      {
+         HOSTNAME    => "/etc/conf.d/hostname",
+-        DOMAINNAME  => "/etc/dnsdomainname",
++        DOMAINNAME  => "/etc/conf.d/domainname",
+         NET         => "/etc/conf.d/net",
+         RESOLV_CONF => "/etc/resolv.conf",
+         HOSTS       => "/etc/hosts",
+@@ -5750,10 +5677,10 @@
+       },
+       table =>
+       [
+-       [ "hostname",      \&gst_replace_sh,       HOSTNAME, HOSTNAME ],
++       [ "hostname",      \&gst_replace_sh,               HOSTNAME,     "HOSTNAME" ],
+        [ "hostname",      \&gst_network_run_hostname ],
+        [ "gateway",       \&gst_network_route_set_default_gw, "%gatewaydev%" ],
+-       [ "domain",        \&gst_replace_line_first,       DOMAINNAME ],
++       [ "domain",        \&gst_replace_sh,               DOMAINNAME,   "DNSDOMAIN" ],
+        [ "domain",        \&gst_replace_join_first_str,   RESOLV_CONF,  "domain", "[ \t]+" ],
+        [ "nameserver",    \&gst_replace_join_all,         RESOLV_CONF,  "nameserver", "[ \t]+" ],
+        [ "searchdomain",  \&gst_replace_join_first_array, RESOLV_CONF,  "search", "[ \t]+", "[ \t]+" ],
+@@ -5764,8 +5691,8 @@
+        [ "winsuse",       \&gst_replace_ini_bool,         SMB_CONF,     "global", "wins support" ],
+        [ "smbuse",        \&gst_service_gentoo_set_status, "samba", 1 ],
+        # first set the gateway to something like "eth0", then add the IP address like "eth0/1.1.1.1"
+-       [ "gatewaydev",    \&gst_replace_sh,               NET, gateway ],
+-       [ "gateway",       \&gst_replace_sh_re,            NET, gateway, "\/[0-9\.]*\$", "/%gateway%" ],
++#       [ "gatewaydev",    \&gst_replace_sh,               NET, gateway ],
++#       [ "gateway",       \&gst_replace_sh_re,            NET, gateway, "\/[0-9\.]*\$", "/%gateway%" ],
+        [ "interface",     \&gst_network_interfaces_set,   OLD_HASH ]
+       ]
+     },
+@@ -5808,56 +5735,60 @@
+ sub gst_network_get_interface_replace_table
+ {
+   my %dist_map =
+-	 (
+-    "redhat-5.2"   => "redhat-5.2",
++         (
++          "redhat-5.2"   => "redhat-5.2",
+ 	  "redhat-6.0"   => "redhat-6.2",
+ 	  "redhat-6.1"   => "redhat-6.2",
+ 	  "redhat-6.2"   => "redhat-6.2",
+ 	  "redhat-7.0"   => "redhat-6.2",
+ 	  "redhat-7.1"   => "redhat-6.2",
+ 	  "redhat-7.2"   => "redhat-7.2",
+-    "redhat-8.0"   => "redhat-8.0",
+-    "redhat-9"     => "redhat-8.0",
++          "redhat-8.0"   => "redhat-8.0",
++          "redhat-9"     => "redhat-8.0",
+ 	  "mandrake-7.1" => "redhat-6.2",
+-    "mandrake-7.2" => "redhat-6.2",
+-    "mandrake-9.0" => "mandrake-9.0",
+-    "mandrake-9.1" => "mandrake-9.0",
+-    "mandrake-9.2" => "mandrake-9.0",
+-    "mandrake-10.0" => "mandrake-9.0",
+-    "mandrake-10.1" => "mandrake-9.0",
+-	"mandrake-10.2" => "mandrake-9.0",
+-	"mandriva-2006.0" => "mandrake-9.0",
+-    "blackpanther-4.0" => "mandrake-9.0",
+-    "conectiva-9"  => "conectiva-9",
+-    "conectiva-10" => "conectiva-9",
+-    "debian-2.2"   => "debian-2.2",
+-    "debian-3.0"   => "debian-3.0",
+-    "debian-sarge" => "debian-3.0",
+-    "ubuntu-5.04" => "debian-3.0",
+-    "ubuntu-5.10" => "debian-3.0",
+-    "suse-7.0"     => "suse-7.0",
+-    "suse-9.0"     => "suse-9.0",
+-    "suse-9.1"     => "suse-9.0",
+-	  "turbolinux-7.0"   => "redhat-6.2",
+-    "pld-1.0"      => "pld-1.0",
+-    "pld-1.1"      => "pld-1.0",
+-    "pld-1.99"     => "pld-1.0",
+-    "fedora-1"     => "redhat-7.2",
+-    "fedora-2"     => "redhat-7.2",
+-    "fedora-3"     => "redhat-7.2",
+-    "yoper-2.1"    => "redhat-7.2",
+-    "yoper-2.2"    => "redhat-7.2",
+-    "specifix"     => "redhat-7.2",
+-    "vine-3.0"     => "vine-3.0",
+-    "vine-3.1"     => "vine-3.0",
+-    "slackware-9.1.0" => "slackware-9.1.0",
+-    "slackware-10.0.0" => "slackware-9.1.0",
+-    "slackware-10.1.0" => "slackware-9.1.0",
+-    "gentoo"       => "gentoo",
+-    "vlos-1.2"     => "vlos-1.2",
+-    "freebsd-5"    => "freebsd-5",
+-    "freebsd-6"    => "freebsd-5",
+-	  );
++          "mandrake-7.2" => "redhat-6.2",
++          "mandrake-9.0" => "mandrake-9.0",
++          "mandrake-9.1" => "mandrake-9.0",
++          "mandrake-9.2" => "mandrake-9.0",
++          "mandrake-10.0" => "mandrake-9.0",
++          "mandrake-10.1" => "mandrake-9.0",
++          "mandrake-10.2" => "mandrake-9.0",
++          "mandriva-2006.0" => "mandrake-9.0",
++          "mandriva-2006.1" => "mandrake-9.0",
++          "yoper-2.2" => "redhat-6.2",
++          "blackpanther-4.0" => "mandrake-9.0",
++          "conectiva-9"  => "conectiva-9",
++          "conectiva-10" => "conectiva-9",
++          "debian-2.2"   => "debian-2.2",
++          "debian-3.0"   => "debian-3.0",
++          "debian-sarge" => "debian-3.0",
++          "ubuntu-5.04" => "debian-3.0",
++          "ubuntu-5.10" => "debian-3.0",
++          "ubuntu-6.04" => "debian-3.0",
++          "suse-7.0"     => "suse-7.0",
++          "suse-9.0"     => "suse-9.0",
++          "suse-9.1"     => "suse-9.0",
++          "turbolinux-7.0"   => "redhat-6.2",
++          "pld-1.0"      => "pld-1.0",
++          "pld-1.1"      => "pld-1.0",
++          "pld-1.99"     => "pld-1.0",
++          "fedora-1"     => "redhat-7.2",
++          "fedora-2"     => "redhat-7.2",
++          "fedora-3"     => "redhat-7.2",
++          "fedora-4"     => "redhat-7.2",
++          "rpath"        => "redhat-7.2",
++          "vine-3.0"     => "vine-3.0",
++          "vine-3.1"     => "vine-3.0",
++          "ark"          => "vine-3.0",
++          "slackware-9.1.0" => "slackware-9.1.0",
++          "slackware-10.0.0" => "slackware-9.1.0",
++          "slackware-10.1.0" => "slackware-9.1.0",
++          "slackware-10.2.0" => "slackware-9.1.0",
++          "gentoo"       => "gentoo",
++          "vlos-1.2"     => "gentoo",
++          "freebsd-5"    => "freebsd-5",
++          "freebsd-6"    => "freebsd-5",
++         );
+ 
+   my %dist_tables =
+ 	(
+@@ -6473,6 +6404,7 @@
+      [
+       [ "address",            \&gst_replace_rcinet1conf,                   [ RC_INET_CONF, IFACE ], IPADDR ],
+       [ "netmask",            \&gst_replace_rcinet1conf,                   [ RC_INET_CONF, IFACE ], NETMASK ],
++      [ "gateway",            \&gst_replace_rcinet1conf_global,            RC_INET_CONF, GATEWAY ],
+       [ "bootproto",          \&gst_network_slackware91_replace_bootproto, [ RC_INET_CONF, IFACE ] ],
+       [ "auto",               \&gst_network_slackware91_set_auto,          [ RC_INET, RC_LOCAL, IFACE ] ],
+       [ "essid",              \&gst_replace_wireless_opts,                 [ WIRELESS, IFACE ], \&gst_network_get_wireless_ifaces, ESSID ],
+@@ -6514,52 +6446,6 @@
+        PPPNET       => "/etc/conf.d/net.#iface#",
+        INIT         => "net.#iface#",
+        IFACE        => "#iface#",
+-       WIRELESS     => "/etc/pcmcia/wireless.opts",
+-     },
+-     table =>
+-     [
+-      [ "dev",                \&gst_network_gentoo_create_files ],
+-      [ "auto",               \&gst_service_gentoo_set_status,        INIT , 0 ],
+-      [ "bootproto",          \&gst_network_gentoo_replace_bootproto, [ NET, IFACE ]],
+-      [ "address",            \&gst_replace_sh_re,                    NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ],
+-      [ "netmask",            \&gst_replace_sh_re,                    NET, "iface_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"],
+-      [ "broadcast",          \&gst_replace_sh_re,                    NET, "iface_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ],
+-      [ "remote_address",     \&gst_replace_sh_re,                    NET, "iface_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ],
+-      [ "essid",              \&gst_replace_wireless_opts,            [ WIRELESS, IFACE ], \&gst_network_get_wireless_ifaces, ESSID ],
+-      [ "key",                \&gst_replace_wireless_opts,            [ WIRELESS, IFACE ], \&gst_network_get_wireless_ifaces, KEY   ],
+-      [ "key_type",           \&gst_network_set_wep_key_type,         [ \&gst_replace_wireless_opts, [ WIRELESS, IFACE ], \&gst_network_get_wireless_ifaces, KEY, "%key%" ]],
+-      # modem stuff
+-      [ "dev",                \&gst_network_check_type,              [ IFACE, "modem", \&gst_replace_sh, PPPNET, PEER ]],
+-      [ "update_dns",         \&gst_network_check_type,              [ IFACE, "modem", \&gst_replace_sh_bool, PPPNET, PEERDNS ]],
+-      [ "mtu",                \&gst_replace_sh,                       PPPNET, MTU ],
+-      [ "mru",                \&gst_replace_sh,                       PPPNET, MRU ],
+-      [ "serial_port",        \&gst_replace_sh,                       PPPNET, MODEMPORT ],
+-      [ "serial_speed",       \&gst_replace_sh,                       PPPNET, LINESPEED ],
+-      [ "login",              \&gst_replace_sh,                       PPPNET, USERNAME ],
+-      [ "password",           \&gst_replace_sh,                       PPPNET, PASSWORD ],
+-      [ "ppp_options",        \&gst_replace_sh,                       PPPNET, PPPOPTIONS ],
+-      [ "set_default_gw",     \&gst_replace_sh_bool,                  PPPNET, DEFROUTE ],
+-      [ "debug",              \&gst_replace_sh_bool,                  PPPNET, DEBUG ],
+-      [ "persist",            \&gst_replace_sh_bool,                  PPPNET, PERSIST ],
+-      [ "serial_escapechars", \&gst_replace_sh_bool,                  PPPNET, ESCAPECHARS ],
+-      [ "serial_hwctl",       \&gst_replace_sh_bool,                  PPPNET, HARDFLOWCTL ],
+-      [ "phone_number",       \&gst_replace_sh,                       PPPNET, NUMBER ],
+-      [ "external_line",      \&gst_replace_sh,                       PPPNET, NUMBER, "%external_line%W%phone_number%" ],
+-      [ "volume",             \&gst_network_set_modem_volume_string,  PPPNET, INITSTRING ],
+-     ]
+-    },
+-
+-   "vlos-1.2" =>
+-   {
+-     iface_set    => \&gst_network_gentoo_interface_activate,
+-     iface_delete => \&gst_network_gentoo_interface_delete,
+-     ifaces_get   => \&gst_network_gentoo_ifaces_get_existing,
+-     fn =>
+-     {
+-       NET          => "/etc/conf.d/net",
+-       PPPNET       => "/etc/conf.d/net.#iface#",
+-       INIT         => "net.#iface#",
+-       IFACE        => "#iface#",
+        WIRELESS     => "/etc/conf.d/wireless",
+      },
+      table =>
+@@ -6567,10 +6453,12 @@
+       [ "dev",                \&gst_network_gentoo_create_files ],
+       [ "auto",               \&gst_service_gentoo_set_status,        INIT , 0 ],
+       [ "bootproto",          \&gst_network_gentoo_replace_bootproto, [ NET, IFACE ]],
+-      [ "address",            \&gst_replace_sh_re,                    NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ],
+-      [ "netmask",            \&gst_replace_sh_re,                    NET, "iface_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"],
+-      [ "broadcast",          \&gst_replace_sh_re,                    NET, "iface_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ],
+-      [ "remote_address",     \&gst_replace_sh_re,                    NET, "iface_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ],
++      [ "address",            \&gst_replace_confd_net_re,             NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ],
++      [ "address",            \&gst_replace_confd_net_re,             NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ],
++      [ "netmask",            \&gst_replace_confd_net_re,             NET, "config_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"],
++      [ "broadcast",          \&gst_replace_confd_net_re,             NET, "config_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ],
++      [ "remote_address",     \&gst_replace_confd_net_re,             NET, "config_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ],
++      [ "gateway",            \&gst_replace_confd_net_re,             NET, "routes_%dev%", "[ \t]*default[ \t]+(via|gw)[ \t]+[0-9\.\:]*", "default via %gateway%" ],
+       [ "essid",              \&gst_replace_sh,                       WIRELESS, "essid_%dev%" ],
+       [ "key",                \&gst_replace_sh,                       WIRELESS, "key_%essid%" ],
+       [ "key_type",           \&gst_network_set_wep_key_type,         [ \&gst_replace_sh, WIRELESS, "key_%essid%", "%key%" ]],
+@@ -6633,52 +6521,7 @@
+        [ "dial_command",   \&gst_network_replace_pppconf_dial_command, [ PPPCONF, STARTIF, IFACE ]],
+        [ "volume",         \&gst_network_replace_pppconf_volume,       [ PPPCONF, STARTIF, IFACE ]],
+       ]
+-    },
+-
+-	  "ark" =>
+-	  {
+-	    ifaces_get => \&gst_network_sysconfig_rh62_ifaces_get_existing,
+-	    fn =>
+-	    {
+-        IFCFG => "/etc/sysconfig/network-scripts/ifcfg-#iface#",
+-        CHAT  => "/etc/sysconfig/network-scripts/chat-#iface#",
+-        IFACE => "#iface#",
+-        PAP   => "/etc/ppp/pap-secrets",
+-        CHAP  => "/etc/ppp/chap-secrets"
+-      },
+-	    table =>
+-          [
+-           [ "bootproto",          \&gst_network_rh62_parse_bootproto, IFCFG, BOOTPROTO ],
+-           [ "auto",               \&gst_parse_sh_bool, IFCFG, ONBOOT ],
+-#           [ "user",               \&gst_parse_sh_bool, IFCFG, USERCTL ],
+-           [ "dev",                \&gst_parse_sh,      IFCFG, DEVICE ],
+-           [ "address",            \&gst_parse_sh,      IFCFG, IPADDR ],
+-           [ "netmask",            \&gst_parse_sh,      IFCFG, NETMASK ],
+-           [ "broadcast",          \&gst_parse_sh,      IFCFG, BROADCAST ],
+-           [ "network",            \&gst_parse_sh,      IFCFG, NETWORK ],
+-           [ "gateway",            \&gst_parse_sh,      IFCFG, GATEWAY ],
+-           [ "remote_address",     \&gst_parse_sh,      IFCFG, REMIP ],
+-           [ "dns1",               \&gst_parse_sh,      IFCFG, DNS1 ],
+-           [ "dns2",               \&gst_parse_sh,      IFCFG, DNS2 ],
+-#           [ "ppp_options",        \&gst_parse_sh,      IFCFG, PPPOPTIONS ],
+-           [ "update_dns",         \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh_bool, IFCFG, PEERDNS ]],
+-           [ "mtu",                \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh,      IFCFG, MTU ]],
+-           [ "mru",                \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh,      IFCFG, MRU ]],
+-           [ "login",              \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh,      IFCFG, PAPNAME ]],
+-           [ "password",           \&gst_network_check_type,  ["%dev%", "modem", \&gst_network_get_pap_passwd, PAP,  "%login%" ]],
+-           [ "password",           \&gst_network_check_type,  ["%dev%", "modem", \&gst_network_get_pap_passwd, CHAP, "%login%" ]],
+-           [ "serial_port",        \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh,      IFCFG, MODEMPORT ]],
+-           [ "serial_speed",       \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh,      IFCFG, LINESPEED ]],
+-           [ "set_default_gw",     \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh_bool, IFCFG, DEFROUTE ]],
+-           [ "persist",            \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh_bool, IFCFG, PERSIST ]],
+-           [ "serial_escapechars", \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh_bool, IFCFG, ESCAPECHARS ]],
+-           [ "serial_hwctl",       \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_sh_bool, IFCFG, HARDFLOWCTL ]],
+-           [ "phone_number",       \&gst_network_check_type,  ["%dev%", "modem", \&gst_parse_chat,    CHAT, "^atd[^0-9]*([0-9, -]+)" ]],
+-#           [ "enabled",            \&gst_network_interface_active, IFACE,
+-#                                                                   \&gst_network_active_interfaces_get ],
+-#           [ "enabled",            \&gst_parse_trivial, 0 ]
+-           ]
+-    },
++    }
+   );
+   
+   my $dist = $dist_map{$gst_dist};
+--- knetworkconf/backends/README.NEW_PLATFORMS	(revision 0)
++++ knetworkconf/backends/README.NEW_PLATFORMS	(revision 495373)
+@@ -0,0 +1,5 @@
++If you patch the backends, PLEASE also make a patch with your changes and send it to the author at juan.baptiste at kdemail.net so your changes can be merged with the system-tools-backend project at freedesktop.org .
++
++Thanks.
++Juan Luis Baptiste
++
+--- knetworkconf/backends/NEWS	(revision 488946)
++++ knetworkconf/backends/NEWS	(revision 495373)
+@@ -1,3 +1,92 @@
++System Tools Backends Version 1.4.1, 2005-11-27
++-----------------------------------------------
++
++The System Tools Backends version 1.4.1 "Burning sky" have been released.
++
++The System Tools Backends are a set of cross-platform scripts for Linux and other Unix systems. The backends provide an standard XML interface for modifying the configuration regarless of the distribution that's being used.
++
++Right now the System Tools Backends fully support various distros/OS such as: Redhat, Mandrake, SuSE, Fedora, Debian (and derivations like Ubuntu, Linex, Guadalinex...), Gentoo, Slackware, FreeBSD, OpenNA, PLD, Vine and Specifix.
++
++Changes since last release
++==========================
++
++  Network
++  =======
++  - Fixed network configuration in Gentoo (Christian Meyer, Florian Schricker, garnacho)
++  - Fixed WEP key detection in Slackware (garnacho)
++
++  Common
++  ======
++  - Added support for Slackware 10.2.0 (Scott J. Harmon)
++  - Changed Specifix Linux to rPath Linux (Ken VanDine)
++
++Downloading
++===========
++You can get it from :
++http://system-tools-backends.freedesktop.org/downloads/1.4/
++
++
++System Tools Backends Version 1.4.0, 2005-08-23
++-----------------------------------------------
++
++The System Tools Backends version 1.4.0 "Already there" have been released.
++
++The System Tools Backends are a set of cross-platform scripts for Linux and other Unix systems. The backends provide an standard XML interface for modifying the configuration regarless of the distribution that's being used.
++
++Right now the System Tools Backends fully support various distros/OS such as: Redhat, Mandrake, SuSE, Fedora, Debian (and derivations like Ubuntu, Linex, Guadalinex...), Gentoo, Slackware, FreeBSD, OpenNA, PLD, Vine and Specifix.
++
++Downloading
++===========
++You can get it from :
++http://system-tools-backends.freedesktop.org/downloads/1.4/
++
++
++System Tools Backends Version 1.3.92, 2005-08-23
++-----------------------------------------------
++
++The System Tools Backends version 1.3.92 "Almost there" have been released.
++
++The System Tools Backends are a set of cross-platform scripts for Linux and other Unix systems. The backends provide an standard XML interface for modifying the configuration regarless of the distribution that's being used.
++
++Right now the System Tools Backends fully support various distros/OS such as: Redhat, Mandrake, SuSE, Fedora, Debian (and derivations like Ubuntu, Linex, Guadalinex...), Gentoo, Slackware, FreeBSD, OpenNA, PLD, Vine and Specifix.
++
++Changes since last release
++==========================
++
++  Network
++  =======
++  - enable gateway saving under Slackware and Zenwalk (Jean-Philippe Guillemin)
++
++Downloading
++===========
++You can get it from :
++http://system-tools-backends.freedesktop.org/downloads/1.3/
++
++System Tools Backends Version 1.3.2, 2005-08-08
++-----------------------------------------------
++
++The System Tools Backends version 1.3.2 "It's not a rehearsal" have been released.
++
++The System Tools Backends are a set of cross-platform scripts for Linux and other Unix systems. The backends provide an standard XML interface for modifying the configuration regarless of the distribution that's being used.
++
++Right now the System Tools Backends fully support various distros/OS such as: Redhat, Mandrake, SuSE, Fedora, Debian (and derivations like Ubuntu, Linex, Guadalinex...), Gentoo, Slackware, FreeBSD, OpenNA, PLD, Vine and Specifix.
++
++Changes since last release
++==========================
++
++  Services
++  ========
++  - Added more roles for known services (garnacho)
++
++  Users
++  =====
++  - Strings improvements in groups descriptions (Corey Burger, Guillaume Desmottes)
++
++Downloading
++===========
++You can get it from :
++http://system-tools-backends.freedesktop.org/downloads/1.3/
++
+ System Tools Backends Version 1.3.1, 2005-07-05
+ -----------------------------------------------
+ 




More information about the pkg-kde-commits mailing list