diff options
-rw-r--r-- | libpathod/cmdline.py | 4 | ||||
-rw-r--r-- | libpathod/pathoc.py | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/libpathod/cmdline.py b/libpathod/cmdline.py index 4a2390ed..7a82a429 100644 --- a/libpathod/cmdline.py +++ b/libpathod/cmdline.py @@ -51,6 +51,10 @@ def go_pathoc(): help='Repeat N times. If 0 repeat for ever.' ) parser.add_argument( + "-w", dest='wait', default=0, type=float, metavar="N", + help='Wait N seconds between each request.' + ) + parser.add_argument( "-r", dest="random", action="store_true", default=False, help=""" Select a random request from those specified. If this is not specified, diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py index e7aff520..d6b2c7a2 100644 --- a/libpathod/pathoc.py +++ b/libpathod/pathoc.py @@ -2,12 +2,15 @@ import sys import os import hashlib import random +import time + +import OpenSSL.crypto + from netlib import tcp, http, certutils import netlib.utils import language import utils -import OpenSSL.crypto class PathocError(Exception): @@ -226,9 +229,13 @@ def main(args): try: cnt = 0 while 1: + if cnt == args.repeat and args.repeat != 0: + break if trycount > args.memolimit: print >> sys.stderr, "Memo limit exceeded..." return + if args.wait and cnt != 0: + time.sleep(args.wait) cnt += 1 if args.random: @@ -262,7 +269,10 @@ def main(args): trycount = 0 try: p.connect(args.connect_to) - except (tcp.NetLibError, PathocError), v: + except tcp.NetLibError, v: + print >> sys.stderr, str(v) + continue + except PathocError, v: print >> sys.stderr, str(v) sys.exit(1) if args.timeout: @@ -281,7 +291,5 @@ def main(args): sys.stdout.flush() if ret and args.oneshot: sys.exit(0) - if cnt == args.repeat: - break except KeyboardInterrupt: pass |