44 lines
1.4 KiB
Diff
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
|
||
|
|