On Thu, Feb 17, 2011 at 12:46 PM, Iustin Pop <[email protected]> wrote: > On Thu, Feb 17, 2011 at 12:41:11PM +0100, René Nussbaumer wrote: >> The pydoc of TcpPing states: @param target: the IP or hostname to ping >> In fact if target is a hostname IPAddress.GetAddressFamily fails, >> because it expects a IP address. This patch fixes this by resolving the >> hostname first to a IP address before continue. >> --- >> lib/netutils.py | 6 +++++- >> 1 files changed, 5 insertions(+), 1 deletions(-) >> >> diff --git a/lib/netutils.py b/lib/netutils.py >> index 9dbf97b..878e1da 100644 >> --- a/lib/netutils.py >> +++ b/lib/netutils.py >> @@ -202,7 +202,11 @@ def TcpPing(target, port, timeout=10, >> live_port_needed=False, source=None): >> >> """ >> try: >> - family = IPAddress.GetAddressFamily(target) >> + if IPAddress.IsValid(target): >> + ip = target >> + else: >> + ip = GetHostname(target).ip >> + family = IPAddress.GetAddressFamily(ip) >> except errors.GenericError: >> return False > > Do you actually need to be able to do this? I'd rather keep this > function to not do resolving (since we don't have hints here on what IP > we want), and leave the resolving to its callers.
Well for the epo I use TcpPing to see if a host is back alive again. Thought, I can also resolve the hostname in there and provide the IP. In any case another patch is coming then to update the misleading doc string. René
