cups/0001-Retry-Validate-Job-once-if-needed-Issue-132.patch

44 lines
1.4 KiB
Diff

From 6e6999b1f74457b7fd6057a31f1d3606de19a05b Mon Sep 17 00:00:00 2001
From: Michael R Sweet <michael.r.sweet@gmail.com>
Date: Fri, 9 Apr 2021 10:20:04 -0400
Subject: [PATCH] Retry Validate-Job once, if needed (Issue #132)
---
CHANGES.md | 1 +
backend/ipp.c | 14 +++++++++++++-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/backend/ipp.c b/backend/ipp.c
index 63353a66d..020ab7fd4 100644
--- a/backend/ipp.c
+++ b/backend/ipp.c
@@ -256,6 +257,7 @@ main(int argc, /* I - Number of command-line args */
get_job_attrs = 0, /* Does printer support Get-Job-Attributes? */
send_document = 0, /* Does printer support Send-Document? */
validate_job = 0, /* Does printer support Validate-Job? */
+ validate_retried = 0, /* Was Validate-Job request retried? */
copies, /* Number of copies for job */
copies_remaining; /* Number of copies remaining */
const char *content_type, /* CONTENT_TYPE environment variable */
@@ -1559,7 +1561,17 @@ main(int argc, /* I - Number of command-line args */
ipp_status == IPP_STATUS_ERROR_BAD_REQUEST)
break;
else if (job_auth == NULL && ipp_status > IPP_STATUS_ERROR_BAD_REQUEST)
+ {
+ if (!validate_retried)
+ {
+ // Retry Validate-Job operation once, to work around known printer bug...
+ validate_retried = 1;
+ sleep(10);
+ continue;
+ }
+
goto cleanup;
+ }
}
/*
--
2.26.3