--- a/patches/system-tools-backends-04-network.diff Fri Mar 20 10:14:17 2009 +0000
+++ b/patches/system-tools-backends-04-network.diff Fri Mar 20 15:36:32 2009 +0000
@@ -32,8 +32,9 @@
&gst_report_end ();
&gst_xml_print_begin ("enable-iface");
---- system-tools-backends-1.4.2.orig/network.pl.in Thu Aug 21 05:46:02 2008
-+++ system-tools-backends-1.4.2/network.pl.in Sat Aug 30 06:10:46 2008
+diff -up system-tools-backends-1.4.2/network.pl.in-clean system-tools-backends-1.4.2/network.pl.in
+--- system-tools-backends-1.4.2/network.pl.in-clean 2006-01-02 15:50:54.000000000 +0000
++++ system-tools-backends-1.4.2/network.pl.in 2009-03-13 11:39:51.202396844 +0000
@@ -28,8 +28,10 @@
use Socket;
@@ -45,7 +46,7 @@
$SCRIPTSDIR = ".";
$DOTIN = ".in";
}
-@@ -117,6 +119,457 @@
+@@ -117,6 +119,457 @@ sub gst_network_get_freebsd_wireless_ifa
return \@ifaces;
}
@@ -503,7 +504,7 @@
# Returns an array with the wireless devices found
sub gst_network_get_wireless_ifaces
{
-@@ -124,6 +577,7 @@
+@@ -124,6 +577,7 @@ sub gst_network_get_wireless_ifaces
return &gst_network_get_linux_wireless_ifaces if ($plat eq "Linux");
return &gst_network_get_freebsd_wireless_ifaces if ($plat eq "FreeBSD");
@@ -511,7 +512,7 @@
}
# set of functions for enabling an interface
-@@ -138,40 +592,142 @@
+@@ -138,39 +592,171 @@ sub gst_network_config_wireless
if ($essid)
{
@@ -572,13 +573,12 @@
+ $nis_state = $1;
+ $nis_state = "$1_temporary" if ( $2 eq "(temporary)");
+ last;
- }
++ }
+ }
+ &gst_file_close ($fd);
+ return $nis_state;
+}
-
-- &gst_file_run ($command);
++
+sub gst_network_sunos_nis_is_available
+{
+ my ($fd, $is_available);
@@ -587,15 +587,39 @@
+ return 0 if $fd eq undef;
+ $is_available = 0;
+ while (<$fd>) {
-+ if (/^([_0-9a-zA-Z\.]*)/) {
++ if (/^([_0-9a-zA-Z\.]+)/) {
+ $is_available = 1;
+ last;
-+ }
- }
+ }
++ }
+ &gst_file_close ($fd);
+ return $is_available;
- }
++}
++
++sub gst_network_sunos_set_nsswitch
++{
++ my ($namesvc) = @_;
++ my ($new_nsswitch, $old_nsswitch);
+- &gst_file_run ($command);
++ $old_nsswitch = "/etc/nsswitch.conf";
++ $new_nsswitch = undef;
++
++ if ( $namesvc eq "dns" ) {
++ $new_nsswitch = "/etc/nsswitch.dns";
++ }
++ elsif ( $namesvc eq "nis" ) {
++ $new_nsswitch = "/etc/nsswitch.nis";
++ }
++
++ if ( $new_nsswitch ) {
++ &gst_file_backup( $old_nsswitch ) if (&gst_file_exists ($old_nsswitch));
++
++ &gst_file_copy( $new_nsswitch, $old_nsswitch );
++ }
++}
++
++
+sub gst_network_sunos_nis_client_set
+{
+ my ($enable) = @_;
@@ -607,20 +631,27 @@
+ if ($nis_state eq "false_temporary")
+ {
+ &gst_file_run ("svcadm enable svc:/network/nis/client");
-+ $nis_is_available = &gst_file_run ("ypwhich");
++ $nis_is_available = &gst_network_sunos_nis_is_available();
+ if (not $nis_is_available)
+ {
+ &gst_file_run ("svcadm disable -t svc:/network/nis/client");
++ &gst_network_sunos_set_nsswitch( "dns" );
++ }
++ else
++ {
++ &gst_network_sunos_set_nsswitch( "nis" );
+ }
+ }
+ } else {
-+ $nis_is_available = &gst_file_run ("ypwhich");
++ $nis_is_available = &gst_network_sunos_nis_is_available();
+ if ( (($nis_state eq "true") || ($nis_state eq "true_temporary")) && not $nis_is_available )
+ {
+ gst_file_run ("svcadm disable -t svc:/network/nis/client");
+ }
-+ }
-+}
++ &gst_network_sunos_set_nsswitch( "dns" );
+ }
+ }
+
sub gst_network_enable_iface
{
my ($hash, $dev, $command_ifconfig) = @_;
@@ -640,7 +671,7 @@
{
- if (&gst_file_locate_tool ("dhclient3"))
+ if ($$tool{"system"} eq "SunOS")
- {
++ {
+
+ &gst_file_run ("ifconfig $dev plumb"); # XXX - inet6???
+ if (&gst_network_get_interface_type($dev) eq "wireless" ) {
@@ -662,11 +693,10 @@
+ &gst_file_run ("cp -p $resolv_conf $SYSCONFDIR/inet/gnome-system-tools/resolv.conf.$dev.bak");
+ }
+ elsif (&gst_file_locate_tool ("dhclient3"))
-+ {
+ {
$command = "dhclient3 -pf /var/run/dhclient.$dev.pid $dev";
}
- elsif (&gst_file_locate_tool ("dhclient"))
-@@ -189,11 +745,36 @@
+@@ -189,11 +775,36 @@ sub gst_network_enable_iface
$command .= " $dev";
$command .= " $address" if ($address);
$command .= " netmask $netmask" if ($netmask);
@@ -705,7 +735,7 @@
}
sub gst_network_get_chat_file
-@@ -352,6 +933,10 @@
+@@ -352,6 +963,10 @@ sub gst_network_autodetect_modem
{
@arr = ("/dev/modem", "/dev/cuaa0", "/dev/cuaa1", "/dev/cuaa2", "/dev/cuaa3");
}
@@ -716,7 +746,7 @@
foreach $tty (@arr) {
$temp = `pppd lcp-max-configure 1 nodetach noauth nocrtscts $tty connect \"chat -t1 \'\' AT OK\" 2>/dev/null`;
-@@ -480,7 +1065,9 @@
+@@ -480,7 +1095,9 @@ sub gst_network_get_broadcast_ping_cmd
my %cmd_map =
(
"debian-2.2" => "ping -c 2 -i 1 -n $bcast",
@@ -727,7 +757,7 @@
);
my %dist_map =
(
-@@ -499,6 +1086,8 @@
+@@ -499,6 +1116,8 @@ sub gst_network_get_broadcast_ping_cmd
"ubuntu-5.04" => "debian-2.2",
"ubuntu-5.10" => "debian-2.2",
"ubuntu-6.04" => "debian-2.2",
@@ -736,7 +766,7 @@
"mandrake-7.1" => "debian-2.2",
"mandrake-7.2" => "debian-2.2",
"mandrake-9.0" => "debian-2.2",
-@@ -778,6 +1367,8 @@
+@@ -778,6 +1397,8 @@ sub gst_network_get_interface_type
{
my ($dev) = @_;
my (@wireless_ifaces, $wi, $type);
@@ -745,7 +775,7 @@
return $types_cache{$dev} if (exists $types_cache{$dev});
-@@ -804,7 +1395,7 @@
+@@ -804,7 +1425,7 @@ sub gst_network_get_interface_type
$types_cache{$dev} = "modem";
}
}
@@ -754,7 +784,7 @@
{
$types_cache{$dev} = "ethernet";
}
-@@ -820,6 +1411,19 @@
+@@ -820,6 +1441,19 @@ sub gst_network_get_interface_type
{
$types_cache{$dev} = "loopback";
}
@@ -774,7 +804,7 @@
return $types_cache{$dev};
}
-@@ -895,6 +1499,66 @@
+@@ -895,12 +1529,73 @@ sub gst_network_linux_interfaces_get_inf
return \%ifaces;
}
@@ -841,7 +871,6 @@
sub gst_network_interfaces_get_info
{
my (%ifaces);
-@@ -901,6 +1565,7 @@
$ifaces = &gst_network_linux_interfaces_get_info if ($$tool{"system"} eq "Linux");
$ifaces = &gst_network_freebsd_interfaces_get_info if ($$tool{"system"} eq "FreeBSD");
@@ -849,7 +878,7 @@
foreach $dev (keys %$ifaces)
{
-@@ -925,12 +1590,18 @@
+@@ -925,12 +1620,18 @@ sub gst_network_active_interfaces_get
&gst_report_enter ();
&gst_report ("network_iface_active_get");
@@ -869,7 +898,7 @@
s/:? .*//;
next if /^$/;
push @ret, $_;
-@@ -1182,6 +1853,208 @@
+@@ -1182,6 +1883,208 @@ sub gst_network_freebsd_ifaces_get_exist
return @ret;
}
@@ -1078,7 +1107,7 @@
sub gst_network_suse70_parse_iface_num
{
my ($file, $dev) = @_;
-@@ -1637,9 +2510,7 @@
+@@ -1637,9 +2540,7 @@ sub gst_network_interfaces_get
# clear unneeded hash elements
foreach $i (keys %$hash)
{
@@ -1088,7 +1117,7 @@
}
foreach $i (@ifaces)
-@@ -1672,7 +2543,7 @@
+@@ -1672,7 +2573,7 @@ sub gst_network_interfaces_get
$dev = "ppp0" if ($$tool{"system"} eq "Linux");
$dev = "tun0" if ($$tool{"system"} eq "FreeBSD");
@@ -1097,7 +1126,7 @@
{
$$hash{$dev}{"dev"} = $dev;
$$hash{$dev}{"enabled"} = 0;
-@@ -1683,6 +2554,63 @@
+@@ -1683,6 +2584,63 @@ sub gst_network_interfaces_get
return \%$hash;
}
@@ -1161,7 +1190,7 @@
sub gst_network_conf_get
{
my %dist_attrib;
-@@ -1743,6 +2671,12 @@
+@@ -1743,6 +2701,12 @@ sub gst_network_rh72_get_file
return "$dev.$i";
}
@@ -1174,7 +1203,7 @@
sub gst_network_deb22_get_file
{
my ($iface) = @_;
-@@ -1816,6 +2750,8 @@
+@@ -1816,6 +2780,8 @@ sub gst_network_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,
@@ -1183,7 +1212,7 @@
"suse-7.0" => \&gst_network_suse70_get_file,
"suse-9.0" => \&gst_network_deb22_get_file,
"suse-9.1" => \&gst_network_deb22_get_file,
-@@ -1851,6 +2787,15 @@
+@@ -1851,6 +2817,15 @@ sub gst_network_get_file
sub gst_network_get_gateway_data
{
@@ -1199,7 +1228,7 @@
my ($fd, $gateway, $dev);
$fd = &gst_file_run_pipe_read ("route -n");
-@@ -1868,6 +2813,25 @@
+@@ -1868,6 +2843,25 @@ sub gst_network_get_gateway_data
return ($gateway, $dev);
}
@@ -1225,7 +1254,7 @@
sub gst_network_get_default_gatewaydev
{
my ($gateway, $dev) = &gst_network_get_gateway_data ();
-@@ -1890,10 +2854,15 @@
+@@ -1890,10 +2884,15 @@ sub gst_network_route_set_default_gw
# Just in case. This means that no static gateway is needed.
return if $gateway eq "";
@@ -1243,7 +1272,7 @@
{
$curr_gateway = $1;
if ($gatewaydev ne "")
-@@ -1910,8 +2879,14 @@
+@@ -1910,8 +2909,14 @@ sub gst_network_route_set_default_gw
if (($curr_gateway ne $gateway) ||
($curr_gatewaydev ne $gatewaydev))
{
@@ -1260,7 +1289,7 @@
}
}
-@@ -3822,28 +4797,57 @@
+@@ -3822,28 +4827,57 @@ sub gst_network_suse9_get_dev_name
return $dev;
}
@@ -1330,7 +1359,7 @@
return \@arr;
}
-@@ -3936,6 +4940,8 @@
+@@ -3936,6 +4970,8 @@ sub gst_network_ensure_loopback_interfac
"ubuntu-5.04" => "lo",
"ubuntu-5.10" => "lo",
"ubuntu-6.04" => "lo",
@@ -1339,7 +1368,7 @@
"suse-7.0" => "",
"suse-9.0" => "",
"suse-9.1" => "",
-@@ -3970,7 +4976,7 @@
+@@ -3970,7 +5006,7 @@ sub gst_network_ensure_loopback_interfac
my %iface = (
"auto" => 1,
"user" => 0,
@@ -1348,7 +1377,7 @@
"address" => "127.0.0.1",
"netmask" => "255.0.0.0",
"broadcast" => "127.255.255.255",
-@@ -4021,16 +5027,27 @@
+@@ -4021,16 +5057,27 @@ sub gst_network_ensure_loopback_staticho
{
my ($statichost, $hostname, $old_hostname, $lo_ip) = @_;
my $i;
@@ -1378,7 +1407,7 @@
}
}
-@@ -4101,6 +5118,8 @@
+@@ -4101,6 +5148,8 @@ sub gst_network_get_parse_table
"ubuntu-5.04" => "debian-2.2",
"ubuntu-5.10" => "debian-2.2",
"ubuntu-6.04" => "debian-2.2",
@@ -1387,7 +1416,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -4479,6 +5498,79 @@
+@@ -4479,6 +5528,79 @@ sub gst_network_get_parse_table
[ "gatewaydev", \&gst_network_get_gateway_dev_from_address, "%interface%", "%gateway%" ],
]
},
@@ -1467,7 +1496,7 @@
);
my $dist = $dist_map{$gst_dist};
-@@ -4522,6 +5614,8 @@
+@@ -4522,6 +5644,8 @@ sub gst_network_get_interface_parse_tabl
"ubuntu-5.04" => "debian-3.0",
"ubuntu-5.10" => "debian-3.0",
"ubuntu-6.04" => "debian-3.0",
@@ -1476,7 +1505,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -5318,7 +6412,115 @@
+@@ -5318,7 +6442,115 @@ sub gst_network_get_interface_parse_tabl
[ "persist", \&gst_network_get_freebsd5_ppp_persist, [ STARTIF, IFACE ]],
]
},
@@ -1593,7 +1622,7 @@
my $dist = $dist_map{$gst_dist};
return %{$dist_tables{$dist}} if $dist;
-@@ -5360,6 +6562,8 @@
+@@ -5360,6 +6592,8 @@ sub gst_network_get_replace_table
"ubuntu-5.04" => "debian-2.2",
"ubuntu-5.10" => "debian-2.2",
"ubuntu-6.04" => "debian-2.2",
@@ -1602,7 +1631,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -5723,7 +6927,69 @@
+@@ -5723,7 +6957,69 @@ sub gst_network_get_replace_table
[ "gateway", \&gst_replace_sh, RC_CONF, "defaultrouter" ],
[ "interface", \&gst_network_interfaces_set, OLD_HASH ]
]
@@ -1673,7 +1702,7 @@
);
my $dist = $dist_map{$gst_dist};
-@@ -5766,6 +7032,8 @@
+@@ -5766,6 +7062,8 @@ sub gst_network_get_interface_replace_ta
"ubuntu-5.04" => "debian-3.0",
"ubuntu-5.10" => "debian-3.0",
"ubuntu-6.04" => "debian-3.0",
@@ -1682,7 +1711,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -6522,7 +7790,109 @@
+@@ -6522,7 +7820,109 @@ sub gst_network_get_interface_replace_ta
[ "dial_command", \&gst_network_replace_pppconf_dial_command, [ PPPCONF, STARTIF, IFACE ]],
[ "volume", \&gst_network_replace_pppconf_volume, [ PPPCONF, STARTIF, IFACE ]],
]
@@ -1793,3 +1822,4 @@
);
my $dist = $dist_map{$gst_dist};
+