diff options
| -rw-r--r-- | sys/lib/python/hgext/hgwebfs.py | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/sys/lib/python/hgext/hgwebfs.py b/sys/lib/python/hgext/hgwebfs.py index 5a5b260eb..91a98adde 100644 --- a/sys/lib/python/hgext/hgwebfs.py +++ b/sys/lib/python/hgext/hgwebfs.py @@ -6,20 +6,22 @@ import os class Webconn: def __init__(self, mnt, req): - try: - self.open(mnt, req) - except IOError, e: + loop = True + while loop: + loop = False try: - errstr = e.strerror - params = errstr[errstr.index("needkey ")+8:] - if params.find("!password?") < 0: - raise e - if os.spawnl(os.P_WAIT, "/boot/factotum", "getkey", "-g", params) != 0: - raise e self.open(mnt, req) - return - except: - raise e + except IOError, e: + try: + errstr = e.strerror + params = errstr[errstr.index("needkey ")+8:] + if params.find("!password?") < 0: + raise e + if os.spawnl(os.P_WAIT, "/boot/factotum", "getkey", "-g", params) != 0: + raise e + loop = True + except: + raise e def open(self, mnt, req): if type(req) == str: |
