diff options
Diffstat (limited to 'dhcp_wizard/Dhcp.pm')
-rwxr-xr-x | dhcp_wizard/Dhcp.pm | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/dhcp_wizard/Dhcp.pm b/dhcp_wizard/Dhcp.pm index 1e26dc5b..d3dbccae 100755 --- a/dhcp_wizard/Dhcp.pm +++ b/dhcp_wizard/Dhcp.pm @@ -29,7 +29,11 @@ use MDK::Wizard::Varspaceval; use MDK::Wizard::Wizcommon; my $wiz = new MDK::Wizard::Wizcommon; +my $interface = 'eth1'; my $wiz_ip_server = $wiz->{net}->itf_get("IPADDR"); +if (!$wiz_ip_server) { + ($wiz_ip_server) = `/sbin/ip addr show dev $interface` =~ /^\s*inet\s+(\d+\.\d+\.\d+\.\d+)/m; +} my $wiz_tftpserverip = $wiz_ip_server; my $d = $4 if $wiz_ip_server =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/; my $s = "$1.$2.$3" if $wiz_ip_server =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/; @@ -40,6 +44,7 @@ my $o = { ip1 => '', ip2 => '', pxe => '1', + gateway => "$wiz_ip_server", wiz_authoritative => 0, einterface => $wiz->{net}->default_itf }, @@ -64,6 +69,7 @@ $o->{pages} = { data => [ { label => N("Lowest IP Address:"), val => \$o->{var}{ip1} }, { label => N("Highest IP Address:"), val => \$o->{var}{ip2} }, + { label => N("Gateway IP Address:"), val => \$o->{var}{gateway} }, { label => N("Enable PXE:"), type => 'bool', val => \$o->{var}{pxe} }, ], next => 'summary' @@ -106,6 +112,7 @@ $o->{pages} = { data => [ { label => N("Lowest IP Address:"), fixed_val => \$o->{var}{ip1} }, { label => N("Highest IP Address:"), fixed_val => \$o->{var}{ip2} }, + { label => N("Gateway IP Address:"), fixed_val => \$o->{var}{gateway} }, { label => N("Interface:"), fixed_val => \$o->{var}{interface} }, { label => N("Enable PXE:"), fixed_val => \$o->{var}{pxeornot} }, ], @@ -159,16 +166,15 @@ sub check { sub do_it { $::testing and return; - my $wiz_domain_name = $wiz->{net}->network_get("DOMAINNAME"); - my $wiz_host_name = $wiz->{net}->network_get("HOSTNAME"); - my $wiz_gateway = $wiz->{net}->network_get("GATEWAY"); + my $wiz_domain_name = $wiz->{net}->network_get("DOMAINNAME"); + my $wiz_host_name = $wiz->{net}->network_get("HOSTNAME"); my $wiz_dns = $wiz->{net}->network_get("dnsServer"); if ($wiz_dns eq '127.0.0.1') { $wiz_dns = $wiz_ip_server } - if (!$wiz_gateway) { + if (!$o->{var}{gateway}) { my $t = `LC_ALL=C /sbin/ip route list scope global`; - ($wiz_gateway) = $t =~ /default via (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) dev/; + ($o->{var}{gateway}) = $t =~ /default via (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) dev/; } my $wiz_ip_net = "$1.$2.$3.0" if $wiz_ip_server =~ /(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/; my $err = check(); @@ -212,7 +218,7 @@ sub do_it { s|__rng1__|$wiz_ip_range1|g; s|__rng2__|$wiz_ip_range2|g; s|__dname__|$wiz_domain_name|g; - s|__gateway__|$wiz_gateway|g; + s|__gateway__|$o->{var}{gateway}|g; s|__tftpserverip__|$wiz_tftpserverip|g; $_; } cat_("__WIZ_HOME__/dhcp_wizard/scripts/dhcpd.conf.default")); |