2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-30 01:26:38 +00:00

fix issue 440: IBM Power S812LC using rspconfig to set bmc ip address failed if the bmc is in dhcp mode

This commit is contained in:
ertaozh 2015-11-20 01:37:51 -05:00
parent 06c950d578
commit 6dc8102594

View File

@ -827,6 +827,12 @@ sub setuseraccess {
return;
}
sub next_setnetinfo {
my $rsp = shift;
my $sessdata = shift;
&setnetinfo($sessdata);
}
sub setnetinfo {
my $sessdata = shift;
my $subcommand = $sessdata->{subcommand};
@ -907,6 +913,14 @@ sub setnetinfo {
} elsif ($subcommand =~ m/ip/ and $argument =~ m/dhcp/) {
@cmd = (0x01,$channel_number,0x4,0x2);
} elsif ($subcommand =~ m/ip/) {
# Need to set ipsrc to static for IBM POWER S822LC and S812LC
if (exists($sessdata->{netinfo_setinprogress})) {
unless($sessdata->{set_ipsrc_static}) {
$sessdata->{set_ipsrc_static} = 1;
$sessdata->{ipmisession}->subcmd(netfn=>$netfun, command=>0x01, data=>[$channel_number,0x04,0x1], callback=>\&next_setnetinfo,callback_args=>$sessdata);
return;
}
}
my $mip = inet_ntoa(inet_aton($argument));
my @mask = split /\./, $mip;
foreach (0..3) {
@ -931,7 +945,8 @@ sub setnetinfo {
}
unless ($sessdata->{netinfo_setinprogress}) {
$sessdata->{netinfo_setinprogress} = '1';
$sessdata->{ipmisession}->subcmd(netfn=>$netfun, command=>0x01, data=>[$channel_number,0x0,0x1], callback=>\&setnetinfo,callback_args=>$sessdata);
$sessdata->{ipmisession}->subcmd(netfn=>$netfun, command=>0x01, data=>[$channel_number,0x0,0x1], callback=>\&next_setnetinfo,callback_args=>$sessdata);
return;
}
my $command = shift @cmd;
$sessdata->{ipmisession}->subcmd(netfn=>$netfun,command=>$command,data=>\@cmd,callback=>\&netinfo_set,callback_args=>$sessdata);