--- lib/PXElator/network.pm 2009/07/31 17:12:52 83 +++ lib/PXElator/network.pm 2009/07/31 17:35:20 84 @@ -33,8 +33,14 @@ } - ifconfig('tap0') =~ m{UP} && return 'up'; - system("sudo ifup tap0") == 0 && return 'started'; + my $ifconfig = ifconfig('tap0'); + if ( $ifconfig =~ m{UP} ) { + $ifconfig =~ m{$server::ip}s && return 'up'; + system("sudo /sbin/ifconfig tap0 $server::ip netmask $server::netmask") == 0 && return "ip changed $server::ip"; + die "can't change IP address of tap0 to $server::ip"; + } + system("sudo ifup tap0") == 0 && return 'started'; + die "can't start tap0: $!"; } 1;