ref: 9f2c7606ab35c3f70a93e7c59fbae833603906c6
parent: 6651be7516550848f02778636fb8a7b08b5aac83
author: aiju <devnull@localhost>
date: Sat Feb 25 20:13:13 EST 2017
hgwebfs: keep trying as long as we get needkey response
--- a/sys/lib/python/hgext/hgwebfs.py
+++ b/sys/lib/python/hgext/hgwebfs.py
@@ -6,20 +6,22 @@
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: