await_tcp is often invoked after a reboot.
In this situation the target's IP address may change. If this happens
while await_tcp is running, we would continue to poll the old IP address.
Fix this by running target_check_ip on each iteration.
Signed-off-by: Robert Ho <robert.hu@intel.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
Tested-by: Robert Ho <robert.hu@intel.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
---
v14: Dropped change to selecthost, which was in code which is no
longer present in this version of the series.
Rewritten to use target_check_ip.
Dropped IMO-unnecessary comment.
my ($maxwait,$interval,$ho) = @_;
target_adjust_timeout($ho,\$maxwait);
poll_loop($maxwait,$interval,
- "await tcp $ho->{Name} $ho->{TcpCheckPort}",
+ "await tcp $ho->{Name} $ho->{Ip} $ho->{TcpCheckPort}",
sub {
- return target_tcp_check($ho,$interval);
+ return target_check_ip($ho) //
+ target_tcp_check($ho,$interval);
});
}