summaryrefslogtreecommitdiff
path: root/net-print/cups/files/cups-2.3.3-ipp-retry-validate.patch
diff options
context:
space:
mode:
Diffstat (limited to 'net-print/cups/files/cups-2.3.3-ipp-retry-validate.patch')
-rw-r--r--net-print/cups/files/cups-2.3.3-ipp-retry-validate.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/net-print/cups/files/cups-2.3.3-ipp-retry-validate.patch b/net-print/cups/files/cups-2.3.3-ipp-retry-validate.patch
new file mode 100644
index 000000000000..a677090cd91c
--- /dev/null
+++ b/net-print/cups/files/cups-2.3.3-ipp-retry-validate.patch
@@ -0,0 +1,43 @@
+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
+