Transport layer problem indicator for darwin-USB

Robert Lev ronen.lev at silverbrookresearch.com
Thu Apr 7 16:41:59 PDT 2011


Hi,

On some of our test cases we noticed that if the printer fails to communicate for a while and then later resumes USB communication with the mac, parts of the message to the printer can be skipped.
When researching this bug I found the following portion in the cups code (usb-darwin.cpp):
----
       /*
	* Ignore timeout errors, but retain the number of bytes written to
	* avoid sending duplicate data (<rdar://problem/6254911>)...
	*/

	if (iostatus == kIOUSBTransactionTimeout)
	{
	  fputs("DEBUG: Got USB transaction timeout during write\n", stderr);
	  iostatus = 0;
	}
----
The problem is that in my test I found out that when the host received kIOUSBTransactionTimeout, parts of the sent data were not transported properly and therefor the printer failed to print the job.
Is there any proper way to resolve such a problem?


       Thanks,
               Ronen




More information about the cups-devel mailing list