server::setup_from_dev will take configuration from existing device
authorDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 25 Aug 2009 17:09:52 +0000 (17:09 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Tue, 25 Aug 2009 17:09:52 +0000 (17:09 +0000)
lib/PXElator/network.pm
lib/PXElator/server.pm

index 40fa69f..b8faed9 100644 (file)
@@ -26,7 +26,7 @@ sub setup {
                system "brctl setfd virtual 0";
                system("/sbin/ifconfig virtual $server::ip netmask $server::netmask") == 0 || warn "W: $!";
        } else {
-               warn "OK $ifconfig\n";
+               server::setup_from_dev( 'virtual' );
        }
        if ( my $dev = ip::default_route_dev() ) {
                system "sudo sysctl -w net.ipv4.ip_forward=1";
index 5b66227..ca57c60 100644 (file)
@@ -8,12 +8,15 @@ our $ip      = '172.16.10.1';
 our $netmask = '255.255.255.0';
 our $bcast   = '172.16.10.255';
 
-if ( my $dev = $ENV{DEV} ) {
-       my $ifconfig = `ifconfig $dev`;
+sub setup_from_dev {
+       my $dev = shift || return;
+       my $ifconfig = `/sbin/ifconfig $dev`;
        ( $ip, $bcast, $netmask ) = ( $1, $2, $3 ) if $ifconfig =~ m{inet addr:(\S+)\s+Bcast:(\S+)\s+Mask:(\S+)}s;
        warn "DEV $dev $ip $bcast $netmask";
 }
 
+setup_from_dev( $ENV{DEV} || 'virtual' );
+
 our ( $ip_from, $ip_to ) = ( 10, 100 );
 
 our $domain_name = 'pxelator.lan';