}
- 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;