Author: kmachalkova Date: Fri Aug 10 20:32:35 2007 New Revision: 40215 URL: http://svn.opensuse.org/viewcvs/yast?rev=40215&view=rev Log: Allow definition of different hostname for each static IP address - part II Modified: trunk/network/src/lan/address.ycp trunk/network/src/modules/DNS.ycp trunk/network/src/modules/Host.ycp Modified: trunk/network/src/lan/address.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/network/src/lan/address.ycp?rev=40215&r1=40214&r2=40215&view=diff ============================================================================== --- trunk/network/src/lan/address.ycp (original) +++ trunk/network/src/lan/address.ycp Fri Aug 10 20:32:35 2007 @@ -15,6 +15,7 @@ import "CWM"; import "CWMTab"; import "Host"; +import "Hostname"; import "IP"; import "Label"; import "Lan"; @@ -341,6 +342,12 @@ UI::SetFocus(`netmask); return false; } + string h = (string) UI::QueryWidget(`hostname, `Value ); + if ( h != "" && !Hostname::CheckFQ(h)) { + Popup::Error(_("No valid hostname.")); + UI::SetFocus(`hostname); + return false; + } // validate duplication if (NetHwDetection::DuplicateIP (ipa)) { @@ -888,17 +895,25 @@ if (LanItems::bootproto == "static") // #104494 { boolean ip_changed = ( LanItems::ipaddr != settings["IPADDR"]:"" ); + y2milestone("jezkovy voci %1 %2", LanItems::ipaddr, settings["IPADDR"]:""); if (ip_changed) - remove( Host::hosts, LanItems::ipaddr); + { + Host::hosts[LanItems::ipaddr] = []; + y2milestone("IP has changed"); + Host::SetModified(); + } LanItems::ipaddr = settings["IPADDR"]:""; LanItems::netmask = settings["NETMASK"]:""; LanItems::remoteip = settings["REMOTEIP"]:""; - if (hostname_initial != settings["HOSTNAME"]:"" || ip_changed) + if ( (hostname_initial != settings["HOSTNAME"]:"") || ip_changed) { - y2milestone("%1 %2", hostname_initial, settings["HOSTNAME"]:""); - Host::Update(hostname_initial, settings["HOSTNAME"]:"", [ settings["IPADDR"]:""]); + if (settings["HOSTNAME"]:"" == "" ) + Host::hosts[LanItems::ipaddr] = []; + else + Host::Update(hostname_initial, settings["HOSTNAME"]:"", [ settings["IPADDR"]:""]); + Host::SetModified(); } } else Modified: trunk/network/src/modules/DNS.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/network/src/modules/DNS.ycp?rev=40215&r1=40214&r2=40215&view=diff ============================================================================== --- trunk/network/src/modules/DNS.ycp (original) +++ trunk/network/src/modules/DNS.ycp Fri Aug 10 20:32:35 2007 @@ -229,7 +229,6 @@ string fqhostname = Hostname::MergeFQ(hostname, domain); NetworkDevices::Read(); - /* Update /etc/hosts */ // Take static network addresses. // Watch out, there may be an unused IPADDR for a DHCP interface, #49055 list<string> devs = @@ -238,9 +237,19 @@ 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::Update(oldhostname, fqhostname, ips); - Host::Write(); + if (NetworkConfig::DHCP["WRITE_HOSTNAME_TO_HOSTS"]:true == false) + Host::write_hostname=false; + else + { + /* Update /etc/hosts, but only iff there are no static + IPs defined. Otherwise, hostnames are associated with + static IPs in address dialog - FaTE #2202 */ + if ( ips == [] ) + { + Host::Update(oldhostname, fqhostname, ips); + Host::Write(); + } + } oldhostname = fqhostname; // #49634 NetworkConfig::Write(); Modified: trunk/network/src/modules/Host.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/network/src/modules/Host.ycp?rev=40215&r1=40214&r2=40215&view=diff ============================================================================== --- trunk/network/src/modules/Host.ycp (original) +++ trunk/network/src/modules/Host.ycp Fri Aug 10 20:32:35 2007 @@ -270,7 +270,7 @@ string name = newhn ; /* Add nick for the first one */ - if(!nickadded) { + if(!nickadded && name != "") { nickadded = true; name = newhn + " " + nick; } -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org