diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_dhcp.scr REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_dhcp.scr
--- old/REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_dhcp.scr	2007-01-14 06:05:38.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_dhcp.scr	2008-01-09 13:57:50.000000000 -0500
@@ -22,5 +22,5 @@
 .sysconfig.network.dhcp
 
 `ag_ini(
-    `SysConfigFile("/etc/sysconfig/network/dhcp")
+    `SysConfigFile("/etc/sysconfig/networking/dhcp")
 )
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_network.scr REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_network.scr
--- old/REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_network.scr	2007-01-14 06:05:38.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/agents/cfg_network.scr	2007-12-17 18:19:11.000000000 -0500
@@ -1,26 +1,27 @@
 /**
  * File:	cfg_network.scr
- * Summary:	Agent for reading/writing /etc/sysconfig/network/config
+ * Summary:	Agent for reading/writing /etc/sysconfig/network
  * Author:	Michal Svec <msvec@suse.cz>
  * Access:	read / write
  *
  * Example:
- *   Dir(.sysconfig.network.config)
- *   (["CHECK_FOR_MASTER", ...])
- **
- *   Read(.sysconfig.network.config.CHECK_FOR_MASTER)
+ *   Read(.sysconfig.network.HOSTNAME)
  *   ("yes")
  **
- *   Write(.sysconfig.network.config.CHECK_FOR_MASTER, "no")
+ *   Write(.sysconfig.network.HOSTNAME, "server1.cn.oracle.com")
  *   (true)
  *
  * $Id: cfg_network.scr 12980 2003-12-06 20:51:23Z msvec $
  *
- * Read/Sets the values defined in <tt>/etc/sysconfig/network/config</tt>
+ * Read/Sets the values defined in <tt>/etc/sysconfig/network</tt>
  * in an easy manner.
+ *
+ * Changelog: 
+ * 2007-12-17  Pearly Zhao <pearly.zhao@oracle.com>
+ *	Change it to the agent for /etc/sysconfig/network at Oracle Enterprise Linux 5
  */
-.sysconfig.network.config
+.sysconfig.network
 
 `ag_ini(
-    `SysConfigFile("/etc/sysconfig/network/config")
+    `SysConfigFile("/etc/sysconfig/network")
 )
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/agents/routes.scr REDHAT/SOURCES/yast2-network-2.13.98/agents/routes.scr
--- old/REDHAT/SOURCES/yast2-network-2.13.98/agents/routes.scr	2007-01-14 06:05:38.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/agents/routes.scr	2008-01-09 13:58:58.000000000 -0500
@@ -1,63 +1,35 @@
 /**
  * File:	routes.scr
- * Summary:	Agent for /etc/sysconfig/network/routes
- * Author:	Michal Svec <msvec@suse.cz>
+ * Summary:	Agent for /etc/sysconfig/network-script/route-*
+ * Author:    Wenji Huang <wenji.huang@oracle.com>
  * Access:	read / write
- * See:		sysconfig.rpm
  *
- * General syntax:
- *     10.10.0.0	0.0.0.0		255.255.0.0	eth0
- *     default		10.10.0.8	0.0.0.0		eth0
- *     ...
  *
- *   Read(.routes)
- *   -> [
- *     $[
- *	"destination":"10.10.0.0",
- *      "device":"eth0",
- *      "gateway":"0.0.0.0",
- *      "netmask":"255.255.0.0"
- *    ],
- *    $[
- *	"destination":"default",
- *	"gateway":"10.10.0.8"
- *    ],
- *  ...
- *  ]
  *
- * $Id: routes.scr 13018 2003-12-11 12:52:53Z jhumpol $
- *
- * <p>Reads/writes <tt>/etc/sysconfig/network/routes</tt>. For more details
+ * <p>Reads <tt>/etc/sysconfig/network-scripts/route-*</tt>. For more details
  * see its own documentation.</p>
- *
- * Returns/Takes a <b>list of maps</b>. Each map (list-entry) corresponds
- * with one entry in the file. Keys for the maps are: "destination", "gateway",
- * "netmask", "device"
- *
- * <p><b>Warning!</b> The additional parameters to route are not supported
- * by this agent (for details see routes(5)).
- *
  */
 .routes
 
-`ag_anyagent(
-    `Description(
-	(`File("/etc/sysconfig/network/routes")),	// real file name
-	"#\n",						// comment
-	false,						// read-only?
-	(`List(
-	    `Tuple(
-		`destination(`String("^ \t\n")),
-		`Whitespace(),
-		`gateway(`String("^ \t\n")),
-		`Whitespace(),
-		`netmask(`String("^ \t\n")),
-		`Optional(`Whitespace()),
-		`Optional(`device(`String("^ \t\n"))),
-		`Optional(`Whitespace()),
-		`Optional(`extrapara(`String("^\n")))
-	    ),
-	"\n"
-	))
-    )
-)
+`ag_ini(
+    `IniAgent( [ "/etc/sysconfig/network-scripts/route-*" ],
+	$[
+	    /* values at the top level, allow comments after value */
+	    "options"	: [ "global_values", "comments_last" ],
+	    /* empty lines, comments after value and whole-line comments */
+	    "comments"	: [ "^[ \t]*$", "[ \t]*#.*$", "^[ \t]*#.*$" ],
+	    /* matching rules */
+	    "params"	: [
+		/* VAR1="val1 'bal x" */
+		$[ "match" : [ "^[ \t]*([a-zA-Z_][a-zA-Z0-9_]*)=\"([^\"`\\$]*)\"", "%s='%s'" ] ],
+		/* VAR1='val1 xxx" xx' */
+		$[ "match" : [ "^[ \t]*([a-zA-Z_][a-zA-Z0-9_]*)='([^']*)'", "%s='%s'" ] ],
+		/* VAR1=val1 */
+		$[ "match" : [ "^[ \t]*([a-zA-Z_][a-zA-Z0-9_]*)=([^ \t\"$`'\\#]*)", "%s='%s'" ] ],
+	    ],
+	    /* matching rules */
+	    "rewrite"	: [
+		[ "/etc/sysconfig/network-scripts/route-(.*)", "/etc/sysconfig/network-scripts/route-%s" ],
+	    ],
+	]
+))
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/lan/complex.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/lan/complex.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/lan/complex.ycp	2007-03-19 08:12:17.000000000 -0400
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/lan/complex.ycp	2007-12-13 16:15:07.000000000 -0500
@@ -27,7 +27,7 @@
 import "Popup";
 import "Label";
 
-import "Product";
+//import "Product";
 import "Package";
 
 include "network/routines.ycp";
@@ -328,7 +328,7 @@
 	    return false;
 	}
     }
-    else if(haskey(request_firmware, NetworkModules::Alias)){
+/*    else if(haskey(request_firmware, NetworkModules::Alias)){
 	string fw = request_firmware[NetworkModules::Alias]:"";
 	if (fw != ""){
 	    if ((!Package::Installed(fw) && !Package::Available(fw))){
@@ -342,7 +342,7 @@
 to this configuration dialog."), Product::name));
 		return false;
 	    }
-	}
+	}*/
 	else {
 		return (Popup::ContinueCancel(_("The device needs a firmware to function properly. It can be usually downloaded 
 from your driver vendor web page.\nIf you have already downloaded and installed the firmware, click \'Continue\' 
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/DNS.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/modules/DNS.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/DNS.ycp	2007-01-14 06:05:47.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/modules/DNS.ycp	2008-01-09 13:59:45.000000000 -0500
@@ -3,6 +3,7 @@
  * Package:	Network configuration
  * Summary:	Hostname and DNS data
  * Authors:	Michal Svec <msvec@suse.cz>
+ * Modified:	Zhao Shujing <pearly.zhao@oracle.com>
  *
  * $Id: DNS.ycp 34033 2006-11-03 16:00:29Z mzugec $
  *
@@ -117,12 +118,12 @@
     y2milestone ("install.inf: %1", install_inf);
 
     /* check for externally modified resolv.conf */
-    if(SCR::Execute(.target.bash, "/sbin/modify_resolvconf check -q < /dev/null") != 0)
+   /* if(SCR::Execute(.target.bash, "/sbin/modify_resolvconf check -q < /dev/null") != 0)
 	resolv_conf_process = (string) SCR::Read(.etc.resolv_conf.process);
     else
     {
 	resolv_conf_process = "";
-    }
+    }*/
 
     /* only read /etc/resolv.conf if present */
     if(SCR::Read(.target.size, resolv_conf) > 0) {
@@ -154,7 +155,7 @@
 
     // prefer /etc/install.inf
     // (because HOSTNAME comes with netcfg.rpm already, #144687)
-    string fqhostname = install_inf["Hostname"]:""; // Machinename never existed??
+   /* string fqhostname = install_inf["Hostname"]:""; // Machinename never existed??
     // if the name is actually an IP only, we discard it too
     if (IP::Check (fqhostname))
     {
@@ -187,7 +188,16 @@
 	hostname = "linux";
 	domain = "site";
     }
-    oldhostname = Hostname::MergeFQ (hostname, domain);
+    oldhostname = Hostname::MergeFQ (hostname, domain);*/
+    map res =(map) SCR::Execute(.target.bash_output,"/bin/hostname ");
+    hostname = deletechars(res["stdout"]:"localhost","\n\t ");
+    oldhostname = hostname;
+    res = (map) SCR::Execute(.target.bash_output,"/bin/dnsdomainname ");
+    domain = deletechars(res["stdout"]:"localdomain","\n\t ");
+    if(hostname != "") {
+        list split = Hostname::SplitFQ(hostname);
+        hostname = split[0]:"";
+   }
 
     y2milestone("nameservers=%1", nameservers);
     y2milestone("searchlist=%1", searchlist);
@@ -213,12 +223,15 @@
     // Take static network addresses.
     // Watch out, there may be an unused IPADDR for a DHCP interface, #49055
     list<string> devs =
+	NetworkDevices::Locate ("BOOTPROTO", "none")+
 	NetworkDevices::Locate ("BOOTPROTO", "static") +
 	NetworkDevices::Locate ("BOOTPROTO", ""); // static is the default
     list<string> ips = maplist(string dev, devs, {
 	return NetworkDevices::GetValue(dev, "IPADDR");
     });
-    if (NetworkConfig::DHCP["WRITE_HOSTNAME_TO_HOSTS"]:true == false) Host::write_hostname=false;
+    //Host::write_hostname is always set true at OEL
+    //if (NetworkConfig::DHCP["WRITE_HOSTNAME_TO_HOSTS"]:true == false) Host::write_hostname=false;
+    Host::write_hostname = true;
     Host::Update(oldhostname, fqhostname, ips);
     Host::Write();
     oldhostname = fqhostname;	// #49634
@@ -243,11 +256,13 @@
 	string xauth_key = (string) SCR::Read(.xauth.key);
 
 	/* change the hostname */
-	SCR::Execute(.target.bash, "/bin/hostname " + hostname);
+	SCR::Execute(.target.bash, "/bin/hostname " + fqhostname);
 
 	/* write hostname */
-	SCR::Write(.target.string, "/etc/HOSTNAME", fqhostname + "\n");
-
+//	SCR::Write(.target.string, "/etc/HOSTNAME", fqhostname + "\n");
+	/* keep consistent with redhat*/
+	SCR::Write(.sysconfig.network.HOSTNAME, fqhostname);
+	SCR::Execute(.target.bash, "/bin/domainname " + domain);
 	/* Finish him */
 	RunSuSEconfig();
 
Only in old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules: DSL.ycp
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Host.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Host.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Host.ycp	2007-01-14 06:05:47.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Host.ycp	2008-01-09 13:59:31.000000000 -0500
@@ -236,9 +236,9 @@
     // but do not overload localhost (#46715)
     if (write_hostname)
 	    if (size(ips) < 1 && nick != "localhost") {
-		y2milestone("No IP found, adding dummy 127.0.0.2");
+	//	y2milestone("No IP found, adding dummy 127.0.0.2");
 		// TODO #42102
-		hosts["127.0.0.2"] = [ newhn + " " + nick ];
+	//	hosts["127.0.0.2"] = [ newhn + " " + nick ];
 		y2milestone("Hosts: %1", hosts);
 		return true;
 	    }
Only in old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules: Internet.ycp
Only in old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules: ISDN.ycp
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Lan.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Lan.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Lan.ycp	2007-04-05 04:12:28.000000000 -0400
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Lan.ycp	2008-01-09 13:57:20.000000000 -0500
@@ -497,13 +497,13 @@
      if (!write_only) step_labels = add(step_labels, _("Activate network services"));
 	/* Progress stage 10 */
      step_labels=add(step_labels, _("Run SuSEconfig"));
-     if (!NetworkService::IsManaged() && /*(boolean) SCR::Read(.init.scripts.exists, "smpppd") &&*/ !write_only && needKInternet())
+    /* if (!NetworkService::IsManaged() && /*(boolean) SCR::Read(.init.scripts.exists, "smpppd") &&* / !write_only && needKInternet())
 	{
-	 /* Progress stage 11 */
+	 /* Progress stage 11 * /
 	 step_labels=add(step_labels, _("Set up smpppd"));
-	 /* Progress stage 12 */
+	 /* Progress stage 12 * /
 	 step_labels = add(step_labels, _("Run KInternet"));
-	}
+	}*/
 
      Progress::New(caption, " ", size(step_labels), step_labels, [], "");
 
@@ -571,21 +571,21 @@
     if(!write_only) RunSuSEconfig();
     sleep(sl);
 
-    if (!NetworkService::IsManaged() && (boolean) SCR::Read(.init.scripts.exists, "smpppd") && !write_only && needKInternet())
+   /* if (!NetworkService::IsManaged() && (boolean) SCR::Read(.init.scripts.exists, "smpppd") && !write_only && needKInternet())
      {
        if(Abort()) return false;
-       /* Progress step 11 */
+       /* Progress step 11 * /
        ProgressNextStage(_("Setting up smpppd(8)..."));
        // takes care of autoinst by itself
        SetupSMPPPD();
        sleep(sl);
 
        if(Abort()) return false;
-       /* Progress step 12 */
+       /* Progress step 12 * /
        ProgressNextStage(_("Running KInternet..."));
        RunKInternet();
        sleep(sl);
-     }
+     }*/
 
     if(Abort()) return false;
     /* Final progress step */
@@ -653,6 +653,7 @@
  */
 void SelectHWMap (map hw) {
     SelectHardwareMap (hw);
+y2milestone ("hw %1",hw);
 
     if(hotplug == "") {
 	// FIXME: MOD Module["module"] = hw["module"]:"";
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Proxy.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Proxy.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Proxy.ycp	2007-01-14 06:05:47.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Proxy.ycp	2008-02-14 16:03:43.000000000 -0500
@@ -43,20 +43,45 @@
  */
 global define boolean Read() {
 
-    /* Read /etc/sysconfig/proxy */
-    http = (string) SCR::Read(.sysconfig.proxy.HTTP_PROXY);
-    if(http == nil) http = "";
-    https = (string) SCR::Read(.sysconfig.proxy.HTTPS_PROXY);
-    if(https == nil) https = "";
-    ftp = (string) SCR::Read(.sysconfig.proxy.FTP_PROXY);
-    if(ftp == nil) ftp = "";
-    no = (string) SCR::Read(.sysconfig.proxy.NO_PROXY);
-    if(no == nil) no = "";
-    enabled = (string) SCR::Read(.sysconfig.proxy.PROXY_ENABLED) != "no";
-
-    /* Read /root/.curlrc */
-    if(SCR::Read(.target.size, "/root/.curlrc") > 0)
-	user = (string) SCR::Read(.root.curlrc.proxy-user);
+    /* Read proxy from gconf */
+    map mode = (map)SCR::Execute(.target.bash_output, "gconftool-2 --get /system/proxy/mode");
+    y2milestone(" mode %1", mode);
+    string out = mode["stdout"]:"";
+
+    if ( deletechars(out,"\n") == "manual")
+	enabled = true;
+    else
+	enabled = false;
+    if (enabled){
+    map host = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/http_proxy/host");
+    string http_host = deletechars(host["stdout"]:"", "\n");
+    map port = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/http_proxy/port");
+    string http_port = deletechars(port["stdout"]:"", "\n");
+    http = "http://" + http_host + ":" + http_port;
+    map secure_host = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/proxy/secure_host");
+    string https_host = deletechars(secure_host["stdout"]:"", "\n");
+    map secure_port = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/proxy/secure_port");
+    string https_port = deletechars(secure_port["stdout"]:"", "\n");
+    https = "https://" + https_host + ":" + https_port;
+    map ftp_hostmap = (map) SCR::Execute (.target.bash_output, "gconftool-2 --get /system/proxy/ftp_host");
+    string ftp_host = deletechars(ftp_hostmap["stdout"]:"", "\n");
+    map ftp_portmap = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/proxy/ftp_port");
+    string ftp_port = deletechars(ftp_portmap["stdout"]:"", "\n");
+    ftp = "ftp://" + ftp_host + ":" + ftp_port;
+    map ignore_host = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/http_proxy/ignore_hosts");
+    no = deletechars(ignore_host["stdout"]:"", "[]\n");
+    map use_authentication = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/http_proxy/use_authentication" );
+   if ( deletechars(use_authentication["stdout"]:"", "\n")=="true")
+    {
+	map authentication_user = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/http_proxy/authentication_user");
+	user = deletechars(authentication_user["stdout"]:"", "\n");
+	map authentication_password = (map)SCR::Execute (.target.bash_output, "gconftool-2 --get /system/http_proxy/authentication_password");
+	pass = deletechars(authentication_password["stdout"]:"", "\n");
+    }
+    }
+
+    //if(SCR::Read(.target.size, "/root/.curlrc") > 0)
+    //	user = (string) SCR::Read(.root.curlrc.proxy-user);
 
     if(user == nil) user = "";
 
@@ -91,12 +116,40 @@
     }
 
     /* Update /etc/sysconfig/proxy */
-    SCR::Write(.sysconfig.proxy.PROXY_ENABLED, enabled?"yes":"no");
-    SCR::Write(.sysconfig.proxy.HTTP_PROXY, http);
-    SCR::Write(.sysconfig.proxy.HTTPS_PROXY, https);
-    SCR::Write(.sysconfig.proxy.FTP_PROXY, ftp);
-    SCR::Write(.sysconfig.proxy.NO_PROXY, no);
-    SCR::Write(.sysconfig.proxy, nil);
+    string http_proxy = deletechars(splitstring(http, ":")[1]:"", "//");
+    string http_port = splitstring(http, ":")[2]:"";
+    string https_proxy = deletechars(splitstring(https, ":")[1]:"", "//");
+    string https_port = splitstring(https, ":")[2]:"";
+    string ftp_proxy = deletechars(splitstring(ftp, ":")[1]:"","//");
+    string ftp_port = splitstring(ftp, ":")[2]:"";
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/proxy/mode %1",
+		enabled?"manual":"none"));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/http_proxy/host %1",
+		http_proxy));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type int --set /system/http_proxy/port %1",
+                http_port));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/proxy/secure_host %1",
+                https_proxy));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type int --set /system/proxy/secure_port %1",
+                https_port));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/proxy/ftp_host %1",
+		ftp_proxy));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type int --set /system/proxy/ftp_port %1",
+                ftp_port));
+    SCR::Execute(.target.bash, sformat("gconftool-2 --type list --list-type string --set /system/http_proxy/ignore_hosts [%1]",
+                no));
+    if(user != "") {
+	SCR::Execute(.target.bash, sformat("gconftool-2 --type bool --set /system/http_proxy/use_authentication true"));
+        SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/http_proxy/authentication_user %1", user));
+	if (pass != "")
+		SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/http_proxy/authentication_password %1",
+		pass));
+    }
+    else{
+	SCR::Execute(.target.bash, sformat("gconftool-2 --type bool --set /system/http_proxy/use_authentication false"));
+	SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/http_proxy/authentication_user \"\""));
+	SCR::Execute(.target.bash, sformat("gconftool-2 --type string --set /system/http_proxy/authentication_password \"\""));
+    }
 
     /* Update /root/.curlrc */
     string proxyuser = nil;
Only in old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules: Remote.ycp
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Routing.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Routing.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Routing.ycp	2007-01-14 06:05:47.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/modules/Routing.ycp	2008-01-09 13:56:44.000000000 -0500
@@ -3,6 +3,8 @@
  * Package:	Network configuration
  * Summary:	Routing data (/etc/sysconfig/network/routes)
  * Authors:	Michal Svec <msvec@suse.cz>
+ * Modified:	Huang Wenji <wenji.huang@oracle.com>
+ *		Zhao Shujing <pearly.zhao@oracle.com>
  *
  * $Id: Routing.ycp 32628 2006-08-30 11:37:04Z mzugec $
  *
@@ -30,7 +32,7 @@
 
 /**
  * Enable IP forwarding
- * .sysconfig.sysctl.IP_FORWARD
+ * .sysconfig.sysctl."net.ipv4.ip_forward"
  */
 global boolean Forward = false;
 
@@ -48,7 +50,12 @@
 /**
  * "routes" file location
  */
-string routes_file = "/etc/sysconfig/network/routes";
+string routes_file = "/etc/sysconfig/network-scripts/route-";
+string link_file = "/etc/sysconfig/networking/profiles/default/route-";
+string link_file2 = "/etc/sysconfig/networking/devices/route-";
+string sysctl_file = "/etc/sysctl.conf";
+list< map > sysctl_result = [];
+integer ip_forward_pos = -1;
 
 /**
  * Data was modified?
@@ -72,8 +79,8 @@
     Routes = [ $[
 		   "destination"       : "default",
 		   "gateway"           : gw,
-		   "netmask"           : "-",
-		   "device"            : "-"
+		   "netmask"           : "",
+		   "device"            : ""
 		   ] ];
     return true;
 }
@@ -98,30 +105,101 @@
 global define boolean Read() {
 
     /* read route.conf */
-    if(SCR::Read(.target.size, routes_file) > 0)
+    /*if(SCR::Read(.target.size, routes_file) > 0)
 	Routes = (list<map>) SCR::Read(.routes);
     else
-	Routes = [];
+	Routes = [];*/
 
     /* enabled IP forwarding */
-    if(SCR::Read(.sysconfig.sysctl.IP_FORWARD) == "yes")
-	Forward = true;
+    /*if(SCR::Read(.sysconfig.sysctl.IP_FORWARD) == "yes")
+	Forward = true;*/
+    sysctl_result = (list<map>)SCR::Read(.sysconfig.sysctl);
+y2milestone ("sysctl %1", sysctl_result);
+    integer i = 0;
+    while (i<size(sysctl_result))
+    {
+     map<string,string> single_entry = (map<string,string>)sysctl_result[i]:$[];
+     if (single_entry["name"]:"nil"=="net.ipv4.ip_forward")
+     {
+     ip_forward_pos = i;
+     if (single_entry["value"]:"nil"=="1")
+       Forward=true;
+     }
+     i = i+1;
+    }
 
-    y2debug("Routes=%1", Routes);
-    y2debug("Forward=%1", Forward);
 
-    /* save routes to check for changes later */
-    Orig_Routes = (list) eval(Routes);
-    Orig_Forward = (boolean) eval(Forward);
 
     /* read available devices */
     NetworkDevices::Read();
     devices = NetworkDevices::List("");
+    //read
+    foreach(any entry, devices,{
+       string dev_name = (string) entry;
+       string value = "";
+       if (dev_name!="lo")
+        {
+       string tmp_str = ".network.value."+dev_name+".GATEWAY";
+       if (SCR::Read(topath(tmp_str))==nil)
+               value = "";
+       else
+               value = (string) SCR::Read(topath(tmp_str));
+        Routes = [ $[
+                "destination"       : "default",
+                "gateway"           : value,
+                "netmask"           : "",
+                "device"            : dev_name 
+               ] ];
+       }
+       });
+
 
     if(Routes == []) {
 	ReadFromGateway (Detection::result["GATEWAY"]:"");
     }
 
+    //read static route
+    list<string> allfiles = SCR::Dir(.routes.section);
+    if(allfiles == nil) allfiles = [];
+    foreach(string dev_name,allfiles,{
+       string pth = ".routes.value.\"" + dev_name + "\"";
+       list<string> values = SCR::Dir(topath(pth));
+        map static_route = $[];
+        maplist(string val, values, {
+            string item_val = (string) SCR::Read(topath(pth + "." + val));
+            static_route = add(static_route,val,item_val);
+          //return;
+            });
+        integer entry_number = 0;
+        while (static_route!=nil && size(static_route)>0)
+        {
+           string dest_name = "ADDRESS"+tostring(entry_number);
+           string gw_name = "GATEWAY"+tostring(entry_number);
+           string netmask_name = "NETMASK"+tostring(entry_number);
+           if (static_route[dest_name]:""!="" && static_route[gw_name]:""!="")
+               {
+                map config = $[];
+               config = add(config,"device",dev_name);
+               config = add(config,"destination",static_route[dest_name]:"");
+               static_route = remove(static_route,dest_name);
+               config = add(config,"gateway",static_route[gw_name]:"");
+               static_route = remove(static_route,gw_name);
+               if (static_route[netmask_name]:""!="")
+                {config = add(config,"netmask",static_route[netmask_name]:"");
+                 static_route = remove(static_route,netmask_name);
+                }
+               Routes = add(Routes,config);
+               }
+         entry_number = entry_number+1;
+        }  //end while
+  });
+    y2milestone("Routes=%1", Routes);
+    y2debug("Forward=%1", Forward);
+
+    /* save routes to check for changes later */
+    Orig_Routes = (list) eval(Routes);
+    Orig_Forward = (boolean) eval(Forward);
+
     return true;
 }
 
@@ -136,22 +214,41 @@
 	y2milestone("No changes to routing -> nothing to write");
 	return true;
     }
+    string ip_forward_value = " ";
 
     if(Forward) {
-	SCR::Write(.sysconfig.sysctl.IP_FORWARD, "yes");
+	ip_forward_value = "1";
 	SCR::Execute(.target.bash, "echo 1 > /proc/sys/net/ipv4/ip_forward");
     }
     else {
-	SCR::Write(.sysconfig.sysctl.IP_FORWARD, "no");
+	ip_forward_value = "0";
 	SCR::Execute(.target.bash, "echo 0 > /proc/sys/net/ipv4/ip_forward");
     }
 
+    if (ip_forward_pos == -1) //no setting in original file
+    {
+	string bash_string = sformat(
+		"echo \"# Controls IP packet forwarding\n%1 = %2 \n\n\" >>"
+		+ sysctl_file, "net.ipv4.ip_forward",ip_forward_value);
+	SCR::Execute(.target.bash, bash_string);
+    }
+    else
+    {
+	SCR::Execute(.target.bash, "/bin/cp " + sysctl_file + " " + sysctl_file + ".YaST2save");
+	string bash_str = sformat(
+		"sed -e 's/net.ipv4.ip_forward[\t ]*=[\t ]*[0 1]/net.ipv4.ip_forward = %1/g' " + sysctl_file +
+		" > " + sysctl_file+".bak", ip_forward_value);
+	SCR::Execute(.target.bash, bash_str);
+	SCR::Execute(.target.bash, "/bin/mv " +sysctl_file+".bak "+sysctl_file);
+     }
+
+
     /* at first stop the running routes */
     // FIXME SCR::Execute(.target.bash, "/etc/init.d/route stop");
     // sysconfig does not support restarting routes only,
     // so we let our caller do it together with other things
 
-    /* create if not exists, otherwise backup */
+    /* create if not exists, otherwise backup * /
     if(SCR::Read(.target.size, routes_file) < 0)
 	SCR::Write(.target.string, routes_file, "");
     else
@@ -159,16 +256,72 @@
 
     any ret = false;
     if(Routes == [])
-	/* workaround bug [#4476] */
+	/* workaround bug [#4476] * /
 	ret = SCR::Write(.target.string, routes_file, "");
     else
-	/* update the routes config */
+	/* update the routes config * /
 	ret = SCR::Write(.routes, Routes);
 
-    /* and finally set up the new routes */
+    /* and finally set up the new routes * /
     // FIXME SCR::Execute(.target.bash, "/etc/init.d/route start");
 
-    return ret == true;
+    return ret == true;*/
+    integer ret =0;
+    SCR::Execute(.target.bash,"rm -f "+routes_file+"*");
+    SCR::Execute(.target.bash,"rm -f "+link_file+"*");
+    SCR::Execute(.target.bash,"rm -f "+link_file2+"*");
+    if(Routes != [])
+    {
+	integer entry_number = 0;
+	//write static route except default
+        foreach(map entry, Routes,{
+        if (entry["destination"]:""!="default" && entry["device"]:""!="")
+        {
+          string file_name = routes_file+entry["device"]:"";
+          ret = ret+(integer)SCR::Execute(
+		.target.bash,"test -f "+file_name+
+		"|| touch "+file_name+
+		" && ln "+file_name+" "+link_file+entry["device"]:""+
+		" && ln "+file_name+" "+link_file2+entry["device"]:"");
+          if (entry["destination"]:""!="")
+	      ret = ret+ (integer)SCR::Execute(
+		.target.bash,"echo \"ADDRESS"+tostring(entry_number)+
+		"="+entry["destination"]:""+"\">>"+file_name);
+          if (entry["netmask"]:""!="")
+              ret = ret+ (integer) SCR::Execute(
+		.target.bash,"echo \"NETMASK"+tostring(entry_number)+
+		"="+entry["netmask"]:""+"\">>"+file_name);
+          if (entry["gateway"]:""!="")
+              ret = ret+  (integer)SCR::Execute(
+		.target.bash,"echo \"GATEWAY"+tostring(entry_number)+
+		"="+entry["gateway"]:""+"\">>"+file_name);
+        entry_number = entry_number + 1;
+       }
+       }); //end foreach
+    } // end if
+
+    //write default gateway
+    foreach(any entry, devices,{
+        string dev_name = (string) entry;
+        string value = "";
+        if (dev_name!="lo")
+         {
+        string tmp_str = ".network.value."+dev_name+".GATEWAY";
+        if  (!SCR::Write(topath(tmp_str),"")) //empty them first
+               ret = 1;
+         }
+        });
+
+     foreach(map entry, Routes,{
+         if (entry["destination"]:""=="default" && entry["device"]:""!="")
+           {
+		string tmp_str = ".network.value."+entry["device"]:""+".GATEWAY";
+		y2milestone("tmp_str %1", tmp_str);
+	        if (!SCR::Write(topath(tmp_str), entry["gateway"]:""))
+			ret = 1;
+          }
+       });
+     return ret == 0;
 }
 
 
Only in old/REDHAT/SOURCES/yast2-network-2.13.98/src: provider
Only in old/REDHAT/SOURCES/yast2-network-2.13.98/src: remote
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/routines/complex.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/routines/complex.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/routines/complex.ycp	2007-01-14 06:05:48.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/routines/complex.ycp	2007-12-12 19:46:43.000000000 -0500
@@ -345,7 +345,7 @@
  * @param provider identifier
  * @return provider name
  * @example ProviderName("tonline") -> "T-Online"
- */
+ * /
 define string ProviderName(string provider) {
     import "Provider";
 
@@ -356,7 +356,7 @@
     string nam = Provider::Current["PROVIDER"]:provider;
     if(nam == nil || nam == "") return provider;
     return nam;
-}
+}*/
 
 /**
  * Return the textual device status
@@ -368,38 +368,38 @@
 define string DeviceStatus(string devtype, string devnum, map devmap) {
     string dev = NetworkDevices::device_name(devtype, devnum);
 
-    /* Modem and DSL */
+    /* Modem and DSL * /
     if(devtype == "ppp" || devtype == "modem" || devtype == "dsl") {
 
 	string nam = ProviderName(devmap["PROVIDER"]:"");
 
 	if(nam == "" || nam == nil)
-	    /* Modem status (%1 is device) */
+	    /* Modem status (%1 is device) * /
 	    return sformat(_("Configured as %1"), dev);
 	else
-	    /* Modem status (%1 is device, %2 is provider) */
+	    /* Modem status (%1 is device, %2 is provider) * /
 	    return sformat(_("Configured as %1 with provider %2"), dev, nam);
     }
-    /* ISDN card */
+    /* ISDN card * /
     else if(devtype == "isdn" || devtype == "contr") {
-	/* ISDN device status (%1 is device) */
+	/* ISDN device status (%1 is device) * /
 	return sformat(_("Configured as %1"), dev);
     }
-    /* ISDN stuff */
+    /* ISDN stuff * /
     else if(devtype == "net") {
 
 	string nam = ProviderName(devmap["PROVIDER"]:"");
-	/* Connection protocol (syncppp|rawip) */
+	/* Connection protocol (syncppp|rawip) * /
 	string proto = devmap["PROTOCOL"]:"";
 
-	/* ISDN status (%1 is device, %2 is provider, %3 protocol) */
+	/* ISDN status (%1 is device, %2 is provider, %3 protocol) * /
 	return sformat(_("Configured as %1 with provider %2 (protocol %3)"), dev, nam, proto);
 
-	/* example: ISDN Connection to Arcor with syncppp on net0 */
+	/* example: ISDN Connection to Arcor with syncppp on net0 * /
 	// return sformat(_("to %1 with %2 on %3"), provider, proto, dev);
     }
-    /* Treat others as network cards */
-    else {
+    /* Treat others as network cards * /
+    else {*/
 	/*
 	if(!regexpmatch(devtype, NetworkAllRegex))
 	    y2error("Unknown type: %1", devtype);
@@ -446,7 +446,7 @@
 	else
 	    /* Network card status (%1 is device, %2 is protocol) */
 	    return sformat(_("Configured as %1 with %2"), dev, toupper(proto));
-    }
+    //}
 }
 
 /**
@@ -506,7 +506,7 @@
 
 	    string startmode_descr = startmode_descrs[v["STARTMODE"]:""]:_("Started manually");
 
-	    /* Modem and DSL */
+	    /* Modem and DSL * /
 	    if(type == "ppp" || type == "modem" || type == "dsl")
 	    {
 		// create the rich text description
@@ -518,13 +518,13 @@
 		    ]);
 		item = `item(`id(dev), dev, DeviceType(type), ProviderName(v["PROVIDER"]:""), rich);
 	    }
-	    /* ISDN stuff */
+	    /* ISDN stuff * /
 	    else if (type == "contr") {
 		// FIXME: richtext
 		string cname = v["NAME"]:"unknown";
-		item = `item(`id(dev), dev, DeviceType(type), cname /*, "active?", ip, "?", "?"*/);
+		item = `item(`id(dev), dev, DeviceType(type), cname /*, "active?", ip, "?", "?"* /);
 	    }
-	    /* ISDN stuff */
+	    /* ISDN stuff * /
 	    else if (type == "net") {
 		// FIXME: richtext
 		string cname = v["PROVIDER"]:"unknown";
@@ -532,8 +532,8 @@
 		string proto = v["PROTOCOL"]:"unknown";
 		item = `item(`id(dev), dev, proto, cname, ip, rip);
 	    }
-	    /* Treat others as network cards */
-	    else {
+	    /* Treat others as network cards * /
+	    else { */
 		/*
 		if(!regexpmatch(type, NetworkAllRegex))
 		    y2error("Unknown type: %1", type);
@@ -568,7 +568,7 @@
 		string rich = HTML::Bold ( sformat("%1 %2", descr, (contains(models, v["NAME"]:"") )?"":_("(not connected)"))) +"<br>"+ HTML::List (bullets);
 		
 		item = `item(`id(dev), descr, ip, rich);
-	    }
+	   // }
 	    overview = add(overview, item);
 
 	    /* aliases summary */
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/routines/hardware.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/routines/hardware.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/routines/hardware.ycp	2007-02-01 17:15:38.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/routines/hardware.ycp	2008-01-09 13:58:21.000000000 -0500
@@ -3,6 +3,7 @@
  * Package:	Network configuration
  * Summary:	Hardware routines
  * Authors:	Michal Svec <msvec@suse.cz>
+ * Modified:	Zhao Shujing <pearly.zhao@oracle.com>
  *
  * $Id: hardware.ycp 32506 2006-08-22 17:19:16Z mvidner $
  *
@@ -180,20 +181,20 @@
 
     map<string,path> hwtypes = $[
 	"netcard"	: .probe.netcard,
-	"modem"		: .probe.modem,
-	"isdn"		: .probe.isdn,
-	"dsl"		: .probe.dsl,
+	//"modem"		: .probe.modem,
+	//"isdn"		: .probe.isdn,
+	//"dsl"		: .probe.dsl,
     ];
 
     map<string,string> hwstrings = $[
 	/* Confirmation: label text (detecting hardware: xxx) */
 	"netcard"	: _("Network Cards"),
 	/* Confirmation: label text (detecting hardware: xxx) */
-	"modem"		: _("Modems"),
+	//"modem"		: _("Modems"),
 	/* Confirmation: label text (detecting hardware: xxx) */
-	"isdn"		: _("ISDN Cards"),
+	//"isdn"		: _("ISDN Cards"),
 	/* Confirmation: label text (detecting hardware: xxx) */
-	"dsl"		: _("DSL Devices"),
+	//"dsl"		: _("DSL Devices"),
     ];
 
     /* Confirmation: label text (detecting hardware: xxx) */
@@ -408,18 +409,18 @@
  */
 map SelectHardwareMap (map sel) {
     /* common stuff */
-    description = sel["name"]:"";
+    //description = sel["name"]:"";
     type = sel["type"]:"eth";
     hotplug = sel["hotplug"]:"";
 
-    unique = sel["unique"]:"";
-    Requires = sel["requires"]:[];
+    //unique = sel["unique"]:"";
+    //Requires = sel["requires"]:[];
     // #44977: Requires now contain the appropriate kernel packages
     // but they are handled differently due to multiple kernel flavors
     // (see Package::InstallKernel)
     // Leave only those not starting with "kernel".
-    Requires = filter (string r, Requires, ``( search (r, "kernel") != 0 ));
-    y2milestone ("requires=%1", Requires);
+    //Requires = filter (string r, Requires, ``( search (r, "kernel") != 0 ));
+    //y2milestone ("requires=%1", Requires);
 
     // FIXME: devname
     hotplug = "";
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/routines/runtime.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/routines/runtime.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/routines/runtime.ycp	2007-01-14 06:05:48.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/routines/runtime.ycp	2007-12-12 19:46:15.000000000 -0500
@@ -11,8 +11,8 @@
 
 import "Arch";
 import "Desktop";
-import "ISDN";
-import "Mode";
+//import "ISDN";
+//import "Mode";
 import "NetworkDevices";
 import "Package";
 import "Service";
@@ -101,7 +101,7 @@
  * Are there interfaces controlled by smpppd and kinternet?
  * They are the ones with USERCONTROL=yes (#44303)
  * @return true/false
- */
+ * /
 boolean HaveDialupLikeInterfaces () {
     list <string> devs = NetworkDevices::Locate ("USERCONTROL", "yes");
     y2milestone ("user controlled interfaces: %1", devs);
@@ -114,20 +114,20 @@
     y2milestone ("user controlled ISDN interfaces: %1", devs);
 
     return devs != [];
-}
+}*/
 
 /**
  * Setup smpppd(8)
  * @return true if success
- */
+ * /
 define boolean SetupSMPPPD() {
     boolean ret = true;
-    /* Stop and disable */
+    /* Stop and disable * /
     if (!HaveDialupLikeInterfaces ()) {
 	ret = Service::Disable("smpppd") && ret;
 	ret = Service::Stop("smpppd") && ret;
     }
-    /* Start and enable */
+    /* Start and enable * /
     else {
         Package::InstallAllMsg(["smpppd", "kinternet"], 
     // notification about package needed 1/2
@@ -137,7 +137,7 @@
 
 	ret = Service::Enable("smpppd") && ret;
 
-	/* Installation? */
+	/* Installation? * /
 	if(Mode::normal ()) {
 	    if(Service::Status("smpppd") == 0)
 		ret = Service::Reload("smpppd") && ret;
@@ -147,34 +147,34 @@
     }
 
     return ret;
-}
+}*/
+
 /**
  * Do we need to start KInternet?
- */
+ * /
 define boolean needKInternet(){
-     /* Any dialup devices? */
+     /* Any dialup devices? * /
      if (!HaveDialupLikeInterfaces ())
      {
         y2milestone ("No dialup-like interfaces");
         return false;
      }
 
-     /* Installation? */
+     /* Installation? * /
      if(!Mode::normal ()) {
         y2milestone("No normal mode");
         return false;
      }
   return true;
-}
-
+}*/
 
 /**
  * Run KInternet
  * @return true if success
- */
+ * /
 define boolean RunKInternet() {
  if (!needKInternet()) return true;
-    /* Text mode? */
+    /* Text mode? * /
     map ui = UI::GetDisplayInfo();
     boolean ncurses = (boolean) ui["TextMode"]:nil;
     y2milestone("Text mode: %1", ncurses);
@@ -192,7 +192,7 @@
 
     // run it by creating a file in /var/lib/Desktop
     Desktop::RunViaDesktop ("kinternet", ["--quiet"]);
-}
+}*/
 
 /* EOF */
 }
Only in REDHAT/SOURCES/yast2-network-2.13.98/src/routines: services
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/services/dns.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/services/dns.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/services/dns.ycp	2007-01-14 06:05:44.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/services/dns.ycp	2007-12-13 16:26:34.000000000 -0500
@@ -14,7 +14,7 @@
 
 import "CWM";
 import "DNS";
-import "GetInstArgs";
+//import "GetInstArgs";
 import "Hostname";
 import "IP";
 import "Label";
@@ -422,7 +422,7 @@
 	    "back_button" : Label::BackButton (),
 	    "next_button" : Label::NextButton (),
 	    "fallback_functions" : functions,
-	    "disable_buttons" : GetInstArgs::enable_back() ? [] : ["back_button"],
+	   // "disable_buttons" : GetInstArgs::enable_back() ? [] : ["back_button"],
 	]);
 
     if (ret == `next)
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/services/host.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/services/host.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/services/host.ycp	2007-01-14 06:05:44.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/services/host.ycp	2008-01-09 13:59:18.000000000 -0500
@@ -3,6 +3,7 @@
  * Module:	Network configuration
  * Summary:	Hosts configuration dialogs
  * Authors:	Michal Svec <msvec@suse.cz>
+ * Modified:	Zhao Shujing <pearly.zhao@oracle.com>
  *
  * $Id: host.ycp 33082 2006-09-25 10:55:08Z kmachalkova $
  *
@@ -80,7 +81,12 @@
 	    return;
 	}
 	foreach (string s, names, {
-	    list <string> dns = splitstring(s," ");
+	    //add to handle "\t" to seperate the dns and alias name at Oracle Enterprise Linux
+	    list<string> dns = [];
+	    if (issubstring(s, "\t"))
+		dns = splitstring(s, "\t");
+	    else
+		dns = splitstring(s," ");
 		string name = dns[0]:"";
 		string aliases = mergestring(remove(dns, 0), " ");
 		term item = `item(`id(items), host, name, aliases);
@@ -208,6 +214,10 @@
 		    string oldip = olditem[1]:"";
 
 		    Host::hosts[oldip] = filter(string dns, Host::hosts[oldip]:[], {
+			//add to handle "\t" to seperate the dns and alias name at Oracle Enterprise Linux.
+			y2milestone("dns = %1, oldentry = %2",dns,oldentry);
+			if (issubstring(dns, "\t"))
+				dns = mergestring(splitstring(dns, "\t")," "); 
 			return dns != oldentry;
 		    });
 		    y2debug("Deleting: %1 (%2)", oldip, ip);
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/src/services/routing.ycp REDHAT/SOURCES/yast2-network-2.13.98/src/services/routing.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/src/services/routing.ycp	2007-01-14 06:05:44.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/src/services/routing.ycp	2008-01-09 13:58:43.000000000 -0500
@@ -3,6 +3,7 @@
  * Package:	Network configuration
  * Summary:	Routing configuration dialogs
  * Authors:	Michal Svec <msvec@suse.cz>
+ * Modified	Huang Wenji <wenji.huang@oracle.com>
  *
  * $Id: routing.ycp 32628 2006-08-30 11:37:04Z mzugec $
  *
@@ -248,8 +249,8 @@
 	    ];
 	});
 
-	if(defgw != UI::QueryWidget(`id(`gw), `Value))
-	    defgwdev = "-"; // FIXME: find correct device
+	//if(defgw != UI::QueryWidget(`id(`gw), `Value))
+	//    defgwdev = "-"; // FIXME: find correct device
 
 	defgw = (string) UI::QueryWidget(`id(`gw), `Value);
 	forward = (boolean) UI::QueryWidget(`id(`forward), `Value);
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.out REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.out
--- old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.out	2007-01-14 06:05:53.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.out	2008-02-14 16:02:47.000000000 -0500
@@ -1,14 +1,8 @@
 Read	.target.tmpdir "/tmp"
 Dump	Read
-Read	.sysconfig.proxy.HTTP_PROXY "h"
-Read	.sysconfig.proxy.HTTPS_PROXY "h"
-Read	.sysconfig.proxy.FTP_PROXY "f"
-Read	.sysconfig.proxy.NO_PROXY nil
-Read	.sysconfig.proxy.PROXY_ENABLED nil
-Read	.target.size "/root/.curlrc" 1
-Read	.root.curlrc.proxy-user "user:pass"
+Execute	.target.bash_output "gconftool-2 --get /system/proxy/mode" $["exit":0, "stderr":"", "stdout":""]
 Return	true
 Dump	Write
 Dump	Import
 Dump	Export
-Return	$["enabled":true, "ftp_proxy":"f", "http_proxy":"h", "https_proxy":"h", "no_proxy":"", "proxy_password":"pass", "proxy_user":"user"]
+Return	$["enabled":false, "ftp_proxy":"", "http_proxy":"", "https_proxy":"", "no_proxy":"", "proxy_password":"", "proxy_user":""]
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.ycp REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.ycp	2007-01-14 06:05:53.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Proxy.ycp	2008-02-14 16:09:03.000000000 -0500
@@ -49,9 +49,19 @@
 import "Proxy";
 import "Progress";
 Progress::off();
-
+map EXEC0 = $[
+    "target" : $[
+        "bash" : 0,
+        "bash_background" : 0,
+        "bash_output" : $[
+            "exit"      : 0,
+            "stdout"    : "",
+            "stderr"    : "",
+        ],
+    ],
+];
 DUMP("Read");
-TEST(``(Proxy::Read()), [READ], nil);
+TEST(``(Proxy::Read()), [$[],$[],EXEC0], nil);
 
 DUMP("Write");
 //TEST(``(Proxy::Write()), [], nil);
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.out REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.out
--- old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.out	2007-01-14 06:05:53.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.out	2008-01-09 14:04:10.000000000 -0500
@@ -1,16 +1,17 @@
 Dump	Read
-Read	.target.size "/etc/sysconfig/network/routes" 1
-Read	.routes [$["1":"r1"], $["2":"r2"]]
-Read	.sysconfig.sysctl.IP_FORWARD "yes"
+Read	.sysconfig.sysctl [$["name":"net.ipv4.ip_forward", "value":"1"]]
+Dir	.routes.section: []
 Return	true
-Dump	Routing::routes [$["1":"r1"], $["2":"r2"]]
+Dump	Routing::routes []
 Dump	Write
 Return	true
-Write	.sysconfig.sysctl.IP_FORWARD "yes" true
 Execute	.target.bash "echo 1 > /proc/sys/net/ipv4/ip_forward" 0
-Read	.target.size "/etc/sysconfig/network/routes" 1
-Execute	.target.bash "/bin/cp /etc/sysconfig/network/routes /etc/sysconfig/network/routes.YaST2save" 0
-Write	.routes [$["1":"r1"], $["3":"r3"]] true
+Execute	.target.bash "/bin/cp /etc/sysctl.conf /etc/sysctl.conf.YaST2save" 0
+Execute	.target.bash "sed -e 's/net.ipv4.ip_forward[\t ]*=[\t ]*[0 1]/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf > /etc/sysctl.conf.bak" 0
+Execute	.target.bash "/bin/mv /etc/sysctl.conf.bak /etc/sysctl.conf" 0
+Execute	.target.bash "rm -f /etc/sysconfig/network-scripts/route-*" 0
+Execute	.target.bash "rm -f /etc/sysconfig/networking/profiles/default/route-*" 0
+Execute	.target.bash "rm -f /etc/sysconfig/networking/devices/route-*" 0
 Return	true
 Dump	Import
 Return	true
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.ycp REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.ycp	2007-01-14 06:05:53.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/Routing.ycp	2008-01-09 14:02:54.000000000 -0500
@@ -29,7 +29,7 @@
 	"console" : $[
 	    "CONSOLE_ENCODING" : "UTF-8",
 	],
-	"sysctl" : $[ "IP_FORWARD" : "yes" ],
+	"sysctl" : [$[ "name" : "net.ipv4.ip_forward", "value" : "1" ]],
     ],
 ];
 
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.out REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.out
--- old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.out	2007-01-14 06:05:53.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.out	2007-12-12 19:52:47.000000000 -0500
@@ -12,9 +12,3 @@
 Return	true
 Execute	.target.bash "/sbin/SuSEconfig --module postfix" 1
 Return	false
-Dump	RunKInternet
-Return	true
-Return	true
-Dump	SetupSMPPPD
-Return	true
-Return	false
diff -ur old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.ycp REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.ycp
--- old/REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.ycp	2007-01-14 06:05:53.000000000 -0500
+++ REDHAT/SOURCES/yast2-network-2.13.98/testsuite/tests/runtime.ycp	2007-12-12 19:52:23.000000000 -0500
@@ -75,12 +75,12 @@
 import "NetworkDevices";
 NetworkDevices::Devices = $[ "dsl" : $[ "0" : $[] ]];
 
-DUMP("RunKInternet");
+/*DUMP("RunKInternet");
 TEST(``(RunKInternet()), [READ,$[],EXEC0], nil);
 TEST(``(RunKInternet()), [READ,$[],EXEC1], nil);
 
 DUMP("SetupSMPPPD");
 TEST(``(SetupSMPPPD()), [READ,$[],EXEC0], nil);
-TEST(``(SetupSMPPPD()), [READ,$[],EXEC1], nil);
+TEST(``(SetupSMPPPD()), [READ,$[],EXEC1], nil);*/
 
 }
