--- a/patches/system-tools-backends-04-network.diff Mon Apr 21 07:00:04 2008 +0000
+++ b/patches/system-tools-backends-04-network.diff Mon Apr 21 08:20:52 2008 +0000
@@ -1,6 +1,5 @@
-diff -ru /var/tmp/clean/system-tools-backends-1.4.2/network-conf.in system-tools-backends-1.4.2/network-conf.in
---- /var/tmp/clean/system-tools-backends-1.4.2/network-conf.in 2006-01-02 15:32:33.000000000 +0000
-+++ system-tools-backends-1.4.2/network-conf.in 2006-03-13 10:14:56.148512000 +0000
+--- system-tools-backends-1.4.2.orig/network-conf.in Mon Jan 2 23:32:33 2006
++++ system-tools-backends-1.4.2/network-conf.in Fri Dec 14 16:00:43 2007
@@ -77,7 +77,8 @@
"vine-3.0", "vine-3.1",
"ark",
@@ -11,9 +10,8 @@
$description =<<"end_of_description;";
Configures all network parameters and interfaces.
-
---- system-tools-backends-1.4.2.orig/network.pl.in Mon Jan 2 23:50:54 2006
-+++ system-tools-backends-1.4.2/network.pl.in Thu Feb 8 20:17:02 2007
+--- 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 2008-04-16 15:06:28.967577874 +0100
@@ -28,8 +28,10 @@
use Socket;
@@ -25,7 +23,7 @@
$SCRIPTSDIR = ".";
$DOTIN = ".in";
}
-@@ -117,6 +119,455 @@
+@@ -117,6 +119,457 @@ sub gst_network_get_freebsd_wireless_ifa
return \@ifaces;
}
@@ -127,6 +125,8 @@
+ if ( $output ne "" ) {
+ return $output;
+ }
++ } elsif (($buf = &gst_network_get_default_gateway ()) ne NULL) {
++ return $buf;
+ }
+ return "";
+}
@@ -459,13 +459,13 @@
+ my (@ifaces);
+
+ # First let's get all ethernet and wireless interfaces
-+ $fd = &gst_file_run_pipe_read ("dladm show-dev");
++ $fd = &gst_file_run_pipe_read ("dladm show-link -p");
+
+ unless ($fd eq undef) {
+ while (<$fd>)
+ {
+ chomp;
-+ if (/^\s*(\S*)\s*link:*(.*)/)
++ if (/^\s*LINK="(\S*)".*/)
+ {
+ push @ifaces, $1;
+ }
@@ -481,7 +481,7 @@
# Returns an array with the wireless devices found
sub gst_network_get_wireless_ifaces
{
-@@ -124,6 +575,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");
@@ -489,7 +489,7 @@
}
# set of functions for enabling an interface
-@@ -138,23 +590,39 @@
+@@ -138,39 +592,81 @@ sub gst_network_config_wireless
if ($essid)
{
@@ -541,7 +541,6 @@
}
}
-@@ -161,17 +629,43 @@
sub gst_network_enable_iface
{
my ($hash, $dev, $command_ifconfig) = @_;
@@ -561,7 +560,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" ) {
@@ -583,11 +582,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 +683,36 @@
+@@ -189,11 +685,36 @@ sub gst_network_enable_iface
$command .= " $dev";
$command .= " $address" if ($address);
$command .= " netmask $netmask" if ($netmask);
@@ -626,7 +624,7 @@
}
sub gst_network_get_chat_file
-@@ -352,6 +871,10 @@
+@@ -352,6 +873,10 @@ sub gst_network_autodetect_modem
{
@arr = ("/dev/modem", "/dev/cuaa0", "/dev/cuaa1", "/dev/cuaa2", "/dev/cuaa3");
}
@@ -637,7 +635,7 @@
foreach $tty (@arr) {
$temp = `pppd lcp-max-configure 1 nodetach noauth nocrtscts $tty connect \"chat -t1 \'\' AT OK\" 2>/dev/null`;
-@@ -480,7 +1003,9 @@
+@@ -480,7 +1005,9 @@ sub gst_network_get_broadcast_ping_cmd
my %cmd_map =
(
"debian-2.2" => "ping -c 2 -i 1 -n $bcast",
@@ -648,7 +646,7 @@
);
my %dist_map =
(
-@@ -499,6 +1024,8 @@
+@@ -499,6 +1026,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",
@@ -657,7 +655,7 @@
"mandrake-7.1" => "debian-2.2",
"mandrake-7.2" => "debian-2.2",
"mandrake-9.0" => "debian-2.2",
-@@ -778,6 +1305,8 @@
+@@ -778,6 +1307,8 @@ sub gst_network_get_interface_type
{
my ($dev) = @_;
my (@wireless_ifaces, $wi, $type);
@@ -666,7 +664,7 @@
return $types_cache{$dev} if (exists $types_cache{$dev});
-@@ -804,7 +1333,7 @@
+@@ -804,7 +1335,7 @@ sub gst_network_get_interface_type
$types_cache{$dev} = "modem";
}
}
@@ -675,7 +673,7 @@
{
$types_cache{$dev} = "ethernet";
}
-@@ -820,6 +1349,19 @@
+@@ -820,6 +1351,19 @@ sub gst_network_get_interface_type
{
$types_cache{$dev} = "loopback";
}
@@ -695,7 +693,7 @@
return $types_cache{$dev};
}
-@@ -895,6 +1437,62 @@
+@@ -895,12 +1439,73 @@ sub gst_network_linux_interfaces_get_inf
return \%ifaces;
}
@@ -707,13 +705,13 @@
+ &gst_report ("network_iface_active_get");
+
+ # First let's get all real network nterfaces known to the kernel
-+ $fd = &gst_file_run_pipe_read ("dladm show-link");
++ $fd = &gst_file_run_pipe_read ("dladm show-link -p");
+
+ unless ($fd eq undef) {
+ while (<$fd>)
+ {
+ chomp;
-+ if (/^.*device: (.*)\s*/)
++ if (/^.*LINK="([^"]*)".*/)
+ {
+ $dev = $1;
+ $ifaces{$dev}{"dev"} = $dev;
@@ -746,6 +744,10 @@
+ $ifaces{$dev}{"addr"} = $1 if /inet[ \t]+([^ \t]+)/i;
+ $ifaces{$dev}{"mask"} = $1 if /netmask[ \t]+([^ \t]+)/i;
+ $ifaces{$dev}{"bcast"} = $1 if /broadcast[ \t]+([^ \t]+)/i;
++ if ( $ifaces{$dev}{"mask"} =~ /^([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ )
++ {
++ $ifaces{$dev}{"mask"} = sprintf ("%d.%d.%d.%d", hex($1), hex($2), hex($3), hex($4));
++ }
+ }
+ }
+
@@ -758,7 +760,6 @@
sub gst_network_interfaces_get_info
{
my (%ifaces);
-@@ -901,6 +1499,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");
@@ -766,7 +767,7 @@
foreach $dev (keys %$ifaces)
{
-@@ -925,12 +1524,18 @@
+@@ -925,12 +1530,18 @@ sub gst_network_active_interfaces_get
&gst_report_enter ();
&gst_report ("network_iface_active_get");
@@ -786,7 +787,7 @@
s/:? .*//;
next if /^$/;
push @ret, $_;
-@@ -1182,6 +1787,208 @@
+@@ -1182,6 +1793,208 @@ sub gst_network_freebsd_ifaces_get_exist
return @ret;
}
@@ -995,7 +996,17 @@
sub gst_network_suse70_parse_iface_num
{
my ($file, $dev) = @_;
-@@ -1672,7 +2479,7 @@
+@@ -1637,9 +2450,7 @@ sub gst_network_interfaces_get
+ # clear unneeded hash elements
+ foreach $i (keys %$hash)
+ {
+- delete $$hash{$i}{"addr"};
+ delete $$hash{$i}{"bcast"};
+- delete $$hash{$i}{"mask"};
+ }
+
+ foreach $i (@ifaces)
+@@ -1672,7 +2483,7 @@ sub gst_network_interfaces_get
$dev = "ppp0" if ($$tool{"system"} eq "Linux");
$dev = "tun0" if ($$tool{"system"} eq "FreeBSD");
@@ -1004,7 +1015,7 @@
{
$$hash{$dev}{"dev"} = $dev;
$$hash{$dev}{"enabled"} = 0;
-@@ -1683,6 +2490,63 @@
+@@ -1683,6 +2494,63 @@ sub gst_network_interfaces_get
return \%$hash;
}
@@ -1068,7 +1079,7 @@
sub gst_network_conf_get
{
my %dist_attrib;
-@@ -1743,6 +2607,12 @@
+@@ -1743,6 +2611,12 @@ sub gst_network_rh72_get_file
return "$dev.$i";
}
@@ -1081,7 +1092,7 @@
sub gst_network_deb22_get_file
{
my ($iface) = @_;
-@@ -1816,6 +2686,8 @@
+@@ -1816,6 +2690,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,
@@ -1090,7 +1101,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 +2723,15 @@
+@@ -1851,6 +2727,15 @@ sub gst_network_get_file
sub gst_network_get_gateway_data
{
@@ -1106,7 +1117,7 @@
my ($fd, $gateway, $dev);
$fd = &gst_file_run_pipe_read ("route -n");
-@@ -1868,6 +2749,25 @@
+@@ -1868,6 +2753,25 @@ sub gst_network_get_gateway_data
return ($gateway, $dev);
}
@@ -1117,7 +1128,7 @@
+ $fd = &gst_file_run_pipe_read ("netstat -rn");
+ while (<$fd>)
+ {
-+ if (/^default[ \t]+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)[ \t]+.*[ \t]([a-zA-Z0-9]*)/)
++ if (/^default[ \t]+([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)[ \t]+.*[ \t]([a-zA-Z0-9]*[0-9])/)
+ {
+ $gateway = $1;
+ $dev = $2;
@@ -1132,7 +1143,7 @@
sub gst_network_get_default_gatewaydev
{
my ($gateway, $dev) = &gst_network_get_gateway_data ();
-@@ -1890,10 +2790,15 @@
+@@ -1890,10 +2794,15 @@ sub gst_network_route_set_default_gw
# Just in case. This means that no static gateway is needed.
return if $gateway eq "";
@@ -1150,7 +1161,7 @@
{
$curr_gateway = $1;
if ($gatewaydev ne "")
-@@ -1910,8 +2815,14 @@
+@@ -1910,8 +2819,14 @@ sub gst_network_route_set_default_gw
if (($curr_gateway ne $gateway) ||
($curr_gatewaydev ne $gatewaydev))
{
@@ -1167,7 +1178,7 @@
}
}
-@@ -3822,28 +4733,57 @@
+@@ -3822,28 +4737,57 @@ sub gst_network_suse9_get_dev_name
return $dev;
}
@@ -1237,7 +1248,7 @@
return \@arr;
}
-@@ -3936,6 +4876,8 @@
+@@ -3936,6 +4880,8 @@ sub gst_network_ensure_loopback_interfac
"ubuntu-5.04" => "lo",
"ubuntu-5.10" => "lo",
"ubuntu-6.04" => "lo",
@@ -1246,7 +1257,7 @@
"suse-7.0" => "",
"suse-9.0" => "",
"suse-9.1" => "",
-@@ -3970,7 +4912,7 @@
+@@ -3970,7 +4916,7 @@ sub gst_network_ensure_loopback_interfac
my %iface = (
"auto" => 1,
"user" => 0,
@@ -1255,7 +1266,37 @@
"address" => "127.0.0.1",
"netmask" => "255.0.0.0",
"broadcast" => "127.255.255.255",
-@@ -4101,6 +5043,8 @@
+@@ -4021,16 +4967,27 @@ sub gst_network_ensure_loopback_staticho
+ {
+ my ($statichost, $hostname, $old_hostname, $lo_ip) = @_;
+ my $i;
++ my ($plat) = $$tool{"system"};
+
+ 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);
++ if ($plat ne "SunOS")
++ {
++ &gst_network_statichost_add_alias ($localhost, $hostname);
++ }
+ }
+ else
+ {
+- $$statichost{$lo_ip} = [ ("localhost", "localhost.localdomain", $hostname) ];
++ if ($plat eq "SunOS")
++ {
++ $$statichost{$lo_ip} = [ ("localhost", "localhost.localdomain") ];
++ }
++ else
++ {
++ $$statichost{$lo_ip} = [ ("localhost", "localhost.localdomain", $hostname) ];
++ }
+ }
+ }
+
+@@ -4101,6 +5058,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",
@@ -1264,7 +1305,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -4479,6 +5423,79 @@
+@@ -4479,6 +5438,79 @@ sub gst_network_get_parse_table
[ "gatewaydev", \&gst_network_get_gateway_dev_from_address, "%interface%", "%gateway%" ],
]
},
@@ -1344,7 +1385,7 @@
);
my $dist = $dist_map{$gst_dist};
-@@ -4522,6 +5539,8 @@
+@@ -4522,6 +5554,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",
@@ -1353,7 +1394,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -5318,7 +6337,115 @@
+@@ -5318,7 +6352,115 @@ sub gst_network_get_interface_parse_tabl
[ "persist", \&gst_network_get_freebsd5_ppp_persist, [ STARTIF, IFACE ]],
]
},
@@ -1470,7 +1511,7 @@
my $dist = $dist_map{$gst_dist};
return %{$dist_tables{$dist}} if $dist;
-@@ -5360,6 +6487,8 @@
+@@ -5360,6 +6502,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",
@@ -1479,7 +1520,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -5723,7 +6852,69 @@
+@@ -5723,7 +6867,69 @@ sub gst_network_get_replace_table
[ "gateway", \&gst_replace_sh, RC_CONF, "defaultrouter" ],
[ "interface", \&gst_network_interfaces_set, OLD_HASH ]
]
@@ -1550,7 +1591,7 @@
);
my $dist = $dist_map{$gst_dist};
-@@ -5766,6 +6957,8 @@
+@@ -5766,6 +6972,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",
@@ -1559,7 +1600,7 @@
"suse-7.0" => "suse-7.0",
"suse-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
-@@ -6522,7 +7715,109 @@
+@@ -6522,7 +7730,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 ]],
]
@@ -1670,3 +1711,4 @@
);
my $dist = $dist_map{$gst_dist};
+