Blame SOURCES/0006-ipa-submit-Retry-without-ca-on-OptionError.patch

7a8c6d
From 301e56c06192649bc33ddbda77ac55c0fb69f2a0 Mon Sep 17 00:00:00 2001
7a8c6d
From: Nalin Dahyabhai <nalin@redhat.com>
7a8c6d
Date: Tue, 14 Jun 2016 15:59:10 -0400
7a8c6d
Subject: [PATCH] ipa-submit: Retry without "ca" on OptionError
7a8c6d
7a8c6d
Add a fallback for when the IPA server returns error 3005 ("OptionError")
7a8c6d
when we've tried to use the "ca" named argument in a request.  As we did
7a8c6d
with "profile_id" earlier, take a guess that it didn't understand the
7a8c6d
most recently-added option that we're setting, and retry without it set.
7a8c6d
---
7a8c6d
 src/ipa.c | 8 ++++++++
7a8c6d
 1 file changed, 8 insertions(+)
7a8c6d
7a8c6d
diff --git a/src/ipa.c b/src/ipa.c
7a8c6d
index f2736c6f37948df902b65157480fc0c29ec58c3e..f8abe609a603b614067e56ebe9935472b647ed99 100644
7a8c6d
--- a/src/ipa.c
7a8c6d
+++ b/src/ipa.c
7a8c6d
@@ -387,6 +387,14 @@ submit:
7a8c6d
 		switch (i / 1000) {
7a8c6d
 		case 2: /* authorization error - permanent */
7a8c6d
 		case 3: /* invocation error - permanent */
7a8c6d
+			if ((i == 3005) && (issuer != NULL)) {
7a8c6d
+				/* Most likely the server didn't understand the
7a8c6d
+				 * "ca" argument.  At least, at this
7a8c6d
+				 * point.  Randomly dropping arguments is not
7a8c6d
+				 * really an extensible solution, though. */
7a8c6d
+				issuer = NULL;
7a8c6d
+				goto submit;
7a8c6d
+			}
7a8c6d
 			if ((i == 3005) && (profile != NULL)) {
7a8c6d
 				/* Most likely the server didn't understand the
7a8c6d
 				 * "profile_id" argument.  At least, at this
7a8c6d
-- 
7a8c6d
2.9.0
7a8c6d