From 9f2c7606ab35c3f70a93e7c59fbae833603906c6 Mon Sep 17 00:00:00 2001 From: aiju Date: Sun, 26 Feb 2017 01:13:13 +0100 Subject: hgwebfs: keep trying as long as we get needkey response --- sys/lib/python/hgext/hgwebfs.py | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'sys/lib/python') 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: -- cgit v1.2.3