Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions aioping/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -289,26 +289,34 @@ async def ping(dest_addr, timeout=10, family=None):
return delay


async def verbose_ping(dest_addr, timeout=2, count=3, family=None):
async def verbose_ping(dest_addr, timeout=2, count=3, family=None, stop_ping=False):
"""
Send >count< ping to >dest_addr< with the given >timeout< and display
the result.
the result. Set stop_ping to True, if you want to check just 1 echo reply from
several requests.
:param dest_addr:
:param timeout:
:param count:
:param family:
:param stop_ping:
"""
for i in range(count):
delay = None

result = ''
try:
delay = await ping(dest_addr, timeout, family)
result = True
if stop_ping:
break
except TimeoutError as e:
result = False
logger.error("%s timed out after %ss" % (dest_addr, timeout))
except Exception as e:
logger.error("%s failed: %s" % (dest_addr, str(e)))
result = False
break

if delay is not None:
delay *= 1000
logger.info("%s get ping in %0.4fms" % (dest_addr, delay))
return result