Hello community,

here is the log from the commit of package cups for openSUSE:Factory checked in 
at 2013-07-01 15:53:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cups (Old)
 and      /work/SRC/openSUSE:Factory/.cups.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cups"

Changes:
--------
--- /work/SRC/openSUSE:Factory/cups/cups.changes        2013-06-28 
16:02:27.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.cups.new/cups.changes   2013-07-01 
15:53:21.000000000 +0200
@@ -1,0 +2,7 @@
+Fri Jun 28 20:16:52 UTC 2013 - [email protected]
+
+- Fix endless loop if IPP server does not accect job (bnc#827418)
+  see also https://www.cups.org/str.php?L4190 (STR#4190,
+  patch str4190.patch)
+
+-------------------------------------------------------------------

New:
----
  str4190.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cups.spec ++++++
--- /var/tmp/diff_new_pack.k5apxn/_old  2013-07-01 15:53:22.000000000 +0200
+++ /var/tmp/diff_new_pack.k5apxn/_new  2013-07-01 15:53:22.000000000 +0200
@@ -15,6 +15,7 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
+
 Name:           cups
 BuildRequires:  dbus-1-devel
 BuildRequires:  fdupes
@@ -174,6 +175,8 @@
 #   and yes upstream should do the same. Please also check:
 #   http://lists.opensuse.org/opensuse-factory/2013-01/msg00578.html
 Patch108:       cups-move-everything-to-run.patch
+# STR #4190: Send-Document failure ignored (also applies to 
client-error-not-authorized)
+Patch109:       str4190.patch
 # Install into this non-root directory (required when norootforbuild is used):
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
@@ -316,6 +319,8 @@
 # Patch108 moves everything to /run
 %patch108 -p1
 %endif
+# Patch109: STR #4190
+%patch109
 
 %build
 # Disable SILENT run of make so that make runs verbose as usual:




++++++ str4190.patch ++++++
Index: backend/ipp.c
===================================================================
--- backend/ipp.c       (revision 10611)
+++ backend/ipp.c       (working copy)
@@ -1279,6 +1279,16 @@
   }
 
  /*
+  * If the printer only claims to support IPP/1.0, or if the user specifically
+  * included version=1.0 in the URI, then do not try to use Create-Job or
+  * Send-Document.  This is another dreaded compatibility hack, but 
unfortunately
+  * there are enough broken printers out there that we need this for now...
+  */
+
+  if (version == 10)
+    create_job = send_document = 0;
+
+ /*
   * Start monitoring the printer in the background...
   */
 
@@ -1494,10 +1504,9 @@
          goto cleanup;
        }
       }
-      else if (ipp_status == IPP_ERROR_JOB_CANCELED)
+      else if (ipp_status == IPP_ERROR_JOB_CANCELED ||
+               ipp_status == IPP_NOT_AUTHORIZED)
         goto cleanup;
-      else if (ipp_status == IPP_NOT_AUTHORIZED)
-        continue;
       else
       {
        /*
@@ -1678,14 +1687,35 @@
              ipp_status == IPP_NOT_POSSIBLE ||
             ipp_status == IPP_PRINTER_BUSY)
       continue;
-    else if (ipp_status == IPP_REQUEST_VALUE)
+    else if (ipp_status == IPP_REQUEST_VALUE ||
+             ipp_status == IPP_ERROR_JOB_CANCELED ||
+             ipp_status == IPP_NOT_AUTHORIZED)
     {
      /*
-      * Print file is too large, abort this job...
+      * Print file is too large, job was canceled, or we need new
+      * authentication data...
       */
 
       goto cleanup;
     }
+    else if (ipp_status == IPP_NOT_FOUND)
+    {
+     /*
+      * Printer does not actually implement support for Create-Job/
+      * Send-Document, so log the conformance issue and stop the printer.
+      */
+
+      fputs("DEBUG: This printer claims to support Create-Job and "
+            "Send-Document, but those operations failed.\n", stderr);
+      fputs("DEBUG: Add '?version=1.0' to the device URI to use legacy "
+            "compatibility mode.\n", stderr);
+      update_reasons(NULL, "+cups-ipp-conformance-failure-report,"
+                          "cups-ipp-missing-send-document");
+
+      ipp_status = IPP_INTERNAL_ERROR; /* Force queue to stop */
+
+      goto cleanup;
+    }
     else
       copies_remaining --;
 
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to