summaryrefslogtreecommitdiff
path: root/Network
diff options
context:
space:
mode:
Diffstat (limited to 'Network')
-rw-r--r--Network/Hosts.pm70
-rw-r--r--Network/Ifaces.pm82
2 files changed, 122 insertions, 30 deletions
diff --git a/Network/Hosts.pm b/Network/Hosts.pm
index 5ef2f28..899245e 100644
--- a/Network/Hosts.pm
+++ b/Network/Hosts.pm
@@ -44,12 +44,19 @@ sub get_fqdn_parse_table
"mandrake-9.2" => "redhat-6.2",
"mandrake-10.0" => "redhat-6.2",
"mandrake-10.1" => "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" => "redhat-6.2",
"conectiva-9" => "redhat-6.2",
"conectiva-10" => "redhat-6.2",
"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-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
"turbolinux-7.0" => "redhat-7.0",
@@ -59,13 +66,17 @@ sub get_fqdn_parse_table
"fedora-1" => "redhat-7.2",
"fedora-2" => "redhat-7.2",
"fedora-3" => "redhat-7.2",
- "specifix" => "redhat-7.2",
+ "fedora-4" => "redhat-7.2",
+ "rpath" => "redhat-7.2",
"vine-3.0" => "redhat-6.2",
"vine-3.1" => "redhat-6.2",
+ "ark" => "redhat-6.2",
"slackware-9.1.0" => "suse-9.0",
"slackware-10.0.0" => "suse-9.0",
"slackware-10.1.0" => "suse-9.0",
+ "slackware-10.2.0" => "suse-9.0",
"gentoo" => "gentoo",
+ "vlos-1.2" => "gentoo",
"freebsd-5" => "freebsd-5",
"freebsd-6" => "freebsd-5",
);
@@ -136,14 +147,14 @@ sub get_fqdn_parse_table
{
fn =>
{
- HOSTNAME => "/etc/hostname",
- DOMAINNAME => "/etc/dnsdomainname",
+ HOSTNAME => "/etc/conf.d/hostname",
+ DOMAINNAME => "/etc/conf.d/domainname",
RESOLV_CONF => "/etc/resolv.conf",
},
table =>
[
- [ "hostname", \&Utils::Parse::get_first_line, HOSTNAME ],
- [ "domain", \&Utils::Parse::get_first_line, DOMAINNAME ],
+ [ "hostname", \&Utils::Parse::get_sh, HOSTNAME, HOSTNAME ],
+ [ "domain", \&Utils::Parse::get_sh, DOMAINNAME, DNSDOMAIN ],
[ "domain", \&Utils::Parse::split_first_str, RESOLV_CONF, "domain", "[ \t]+" ],
]
},
@@ -170,6 +181,50 @@ sub get_fqdn_parse_table
return undef;
}
+sub add_statichost_alias
+{
+ my ($localhost, $alias) = @_;
+ my $i;
+
+ foreach $i (@$localhost)
+ {
+ return if ($i eq $alias);
+ }
+
+ push @$localhost, $alias;
+}
+
+sub remove_statichost_alias
+{
+ my ($localhost, $alias) = @_;
+ my $i;
+
+ for ($i = 0; $i < @$localhost; $i++) {
+ if ($$localhost[$i] eq $alias)
+ {
+ delete $$localhost[$i];
+ return;
+ }
+ }
+}
+
+sub ensure_loopback_statichost
+{
+ my ($statichost, $hostname, $old_hostname, $lo_ip) = @_;
+ my $i;
+
+ if (exists $$statichost{$lo_ip})
+ {
+ my $localhost = $$statichost{$lo_ip};
+ &remove_statichost_alias ($localhost, $old_hostname) if ($old_hostname);
+ &add_statichost_alias ($localhost, $hostname);
+ }
+ else
+ {
+ $$statichost{$lo_ip} = [ ("localhost", "localhost.localdomain", $hostname) ];
+ }
+}
+
sub get_fqdn
{
my %dist_attrib;
@@ -215,6 +270,11 @@ sub get_search_domains
return @search_domains;
}
+sub set_fqdn
+{
+ # FIXME: implement, add a call to &ensure_loopback_statichost()
+}
+
sub set
{
my (@config) = @_;
diff --git a/Network/Ifaces.pm b/Network/Ifaces.pm
index b1c71a6..1a9cc9e 100644
--- a/Network/Ifaces.pm
+++ b/Network/Ifaces.pm
@@ -435,16 +435,25 @@ sub set_suse_bootproto
return &Utils::Replace::set_sh ($file, $key, $proto_name_to_suse90{$value});
}
+sub get_gentoo_bootproto
+{
+ my ($file, $dev) = @_;
+
+ return "dhcp" if (&Utils::Parse::get_confd_net ($file, "config_$dev") =~ /dhcp/i);
+ return "none";
+}
+
sub set_gentoo_bootproto
{
my ($file, $dev, $value) = @_;
return if ($dev =~ /^ppp/);
- return &Utils::Replace::split ($file, "config_$dev", "[ \t]*=[ \t]*", "\"dhcp\"") if ($value ne "none");
+ return &Utils::Replace::set_confd_net ($file, "config_$dev", "dhcp") if ($value ne "none");
- # replace with a fake IP address, I know it's a hack
- return &Utils::Replace::split ($file, "config_$dev", "[ \t]*=[ \t]*", "\"0.0.0.0\"");
+ # replace with a fake IP address, it will be replaced
+ # later with the correct one, I know it's a hack
+ return &Utils::Replace::set_confd_net ($file, "config_$dev", "0.0.0.0");
}
sub set_freebsd_bootproto
@@ -1390,8 +1399,7 @@ sub delete_gentoo_interface
$gateway = $$old_hash {"gateway"};
# bring down the interface and remove from init
- # FIXME: port this function
- &gst_service_gentoo_set_status ("/etc/init.d/net.$dev", 1, 0);
+ &Init::Services::set_gentoo_service_status ("/etc/init.d/net.$dev", "default", "stop");
if ($dev =~ /^ppp/)
{
@@ -1399,7 +1407,7 @@ sub delete_gentoo_interface
}
else
{
- &Utils::Replace::set_sh ("/etc/conf.d/net", "iface_$dev", "");
+ &Utils::Replace::set_sh ("/etc/conf.d/net", "config_$dev", "");
}
}
@@ -1653,11 +1661,18 @@ sub get_interface_parse_table
"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-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-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
"turbolinux-7.0" => "redhat-6.2",
@@ -1667,13 +1682,17 @@ sub get_interface_parse_table
"fedora-1" => "redhat-7.2",
"fedora-2" => "redhat-7.2",
"fedora-3" => "redhat-7.2",
- "specifix" => "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",
);
@@ -2254,20 +2273,20 @@ sub get_interface_parse_table
INIT => "net.#iface#",
TYPE => "#type#",
IFACE => "#iface#",
- WIRELESS => "/etc/pcmcia/wireless.opts",
+ WIRELESS => "/etc/conf.d/wireless",
},
table =>
[
[ "auto", \&Init::Services::get_gentoo_service_status, INIT, "default" ],
[ "dev", \&Utils::Parse::get_trivial, IFACE ],
- [ "address", \&Utils::Parse::get_sh_re, NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ],
- [ "netmask", \&Utils::Parse::get_sh_re, NET, "iface_%dev%", "netmask[ \t]+([0-9\.]*)" ],
- [ "remote_address", \&Utils::Parse::get_sh_re, NET, "iface_%dev%", "dest_address[ \t]+([0-9\.]*)" ],
- [ "gateway", \&Utils::Parse::get_sh_re, NET, "gateway", "%dev%/([0-9\.\:]*)" ],
- [ "bootproto", \&get_bootproto, NET, "iface_%dev%" ],
- [ "essid", \&Utils::Parse::get_wireless_opts, [ WIRELESS, IFACE], \&get_wireless_ifaces, ESSID ],
- [ "key_type", \&get_wep_key_type, [ \&Utils::Parse::get_wireless_opts, [ WIRELESS, IFACE], \&get_wireless_ifaces, KEY ]],
- [ "key", \&get_wep_key, [ \&Utils::Parse::get_wireless_opts, [ WIRELESS, IFACE], \&get_wireless_ifaces, KEY ]],
+ [ "address", \&Utils::Parse::get_confd_net_re, NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ],
+ [ "netmask", \&Utils::Parse::get_confd_net_re, NET, "config_%dev%", "netmask[ \t]+([0-9\.]*)" ],
+ [ "remote_address", \&Utils::Parse::get_confd_net_re, NET, "config_%dev%", "dest_address[ \t]+([0-9\.]*)" ],
+ # [ "gateway", \&gst_network_gentoo_parse_gateway, [ NET, IFACE ]],
+ [ "bootproto", \&get_gentoo_bootproto, [ NET, IFACE ]],
+ [ "essid", \&Utils::Parse::get_sh, WIRELESS, "essid_%dev%" ],
+ [ "key_type", \&get_wep_key_type, [ \&Utils::Parse::get_sh, WIRELESS, "key_%essid%" ]],
+ [ "key", \&get_wep_key, [ \&Utils::Parse::get_sh, WIRELESS, "key_%essid%" ]],
# modem stuff
[ "update_dns", \&Utils::Parse::get_sh_bool, PPPNET, PEERDNS ],
[ "mtu", \&Utils::Parse::get_sh, PPPNET, MTU ],
@@ -2354,6 +2373,7 @@ sub get_interface_replace_table
"redhat-7.2" => "redhat-7.2",
"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",
@@ -2361,11 +2381,18 @@ sub get_interface_replace_table
"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-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-9.0" => "suse-9.0",
"suse-9.1" => "suse-9.0",
"turbolinux-7.0" => "redhat-6.2",
@@ -2375,13 +2402,17 @@ sub get_interface_replace_table
"fedora-1" => "redhat-7.2",
"fedora-2" => "redhat-7.2",
"fedora-3" => "redhat-7.2",
- "specifix" => "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",
);
@@ -2944,20 +2975,21 @@ sub get_interface_replace_table
PPPNET => "/etc/conf.d/net.#iface#",
INIT => "net.#iface#",
IFACE => "#iface#",
- WIRELESS => "/etc/pcmcia/wireless.opts",
+ WIRELESS => "/etc/conf.d/wireless",
},
table =>
[
[ "dev", \&create_gentoo_files ],
[ "auto", \&set_gentoo_service_status, INIT, "default" ],
[ "bootproto", \&set_gentoo_bootproto, [ NET, IFACE ]],
- [ "address", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "^[ \t]*([0-9\.]+)" ],
- [ "netmask", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"],
- [ "broadcast", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ],
- [ "remote_address", \&Utils::Replace::set_sh_re, NET, "iface_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ],
- [ "essid", \&Utils::Replace::set_wireless_opts, [ WIRELESS, IFACE ], \&get_wireless_ifaces, ESSID ],
- [ "key", \&Utils::Replace::set_wireless_opts, [ WIRELESS, IFACE ], \&get_wireless_ifaces, KEY ],
- [ "key_type", \&set_wep_key_full, [ \&Utils::Replace::set_wireless_opts, [ WIRELESS, IFACE ], \&get_wireless_ifaces, KEY, "%key%" ]],
+ [ "address", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "^[ \t]*([0-9\.]+)" ],
+ [ "netmask", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "[ \t]+netmask[ \t]+[0-9\.]*", " netmask %netmask%"],
+ [ "broadcast", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "[ \t]+broadcast[ \t]+[0-9\.]*", " broadcast %broadcast%" ],
+ [ "remote_address", \&Utils::Replace::set_confd_net_re, NET, "config_%dev%", "[ \t]+dest_address[ \t]+[0-9\.]*", " dest_address %remote_address%" ],
+ # [ "gateway", \&Utils::Replace::set_confd_net_re, NET, "routes_%dev%", "[ \t]*default[ \t]+(via|gw)[ \t]+[0-9\.\:]*", "default via %gateway%" ],
+ [ "essid", \&Utils::Replace::set_sh, WIRELESS, "essid_%dev%" ],
+ [ "key", \&Utils::Replace::set_sh, WIRELESS, "key_%essid%" ],
+ [ "key_type", \&set_wep_key_type, [ \&Utils::Replace::set_sh, WIRELESS, "key_%essid%", "%key%" ]],
# modem stuff
[ "dev", \&check_type, [ IFACE, "modem", \&Utils::Replace::set_sh, PPPNET, PEER ]],
[ "update_dns", \&check_type, [ IFACE, "modem", \&Utils::Replace::set_sh_bool, PPPNET, PEERDNS ]],