From b4bb3a1c184d930906d699e82c65e96216553871 Mon Sep 17 00:00:00 2001 From: Ari Pringle Date: Mon, 12 Sep 2016 11:34:25 -0600 Subject: [PATCH] fix agreement URL updating --- simple_acme.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/simple_acme.py b/simple_acme.py index 606e4c2..5eb53ed 100644 --- a/simple_acme.py +++ b/simple_acme.py @@ -149,20 +149,20 @@ def thumbprint(self): def refresh_registration(self): # refresh registration details(and agreement if necessary) - code, result, info = _send_signed_request( - self, self.url, { - "resource": "reg", - "agreement": self.agreement, - } - ) - - # if the agreement has changed, autoaccept it and refresh the registration again - links = info.getheader('Link') - if re.search(r';rel="terms-of-service"', links): - new_agreement = re.sub(r'.*<(.*)>;rel="terms-of-service".*', r'\1', links) - if self.agreement != new_agreement: - self.agreement = new_agreement - self.refresh_registration() + try: + code, result, info = _send_signed_request( + self, self.url, { + "resource": "reg", + "agreement": self.agreement, + } + ) + except IOError as e: + match = re.search(r'does not match current agreement URL \[(.*)\]', str(e)) + if (match): + self.agreement = match.group(1) + self.refresh_registration + else: + raise e def register(self, email): if not self.url: