diff --git a/aioping/__init__.py b/aioping/__init__.py index d594d62..8642a64 100644 --- a/aioping/__init__.py +++ b/aioping/__init__.py @@ -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