Environment
iPrint Mac client version 6.08
Situation
When the iPrint Client for Mac is configured to go thru a Squid proxy, printing is very slow. For example, a single page can take up to 10 minutes to print.
The iPrint Client for Windows using the same proxy does not experience slowness.
The iPrint Client for Windows using the same proxy does not experience slowness.
Resolution
Configure the Squid proxy server to use HTTP 1.1 instead of HTTP 1.0.
Cause
The Squid proxy server was configured to use HTTP 1.0. During the connection with the Mac client, Squid was sending an HTTP header of "Connection: close". That is an HTTP 1.0 header meaning a non-persistent connection. However, CUPS on the Mac machine ignores that header and attempts to send the print job over the already established (persistent) connection. This action causes Squid to reset the connection without accepting the print job. After 5 attempts, CUPS libraries finally processes the header correctly and a new connections is opened and the print job is accepted. The 5 attempts account for the 10 minute delay.
Additional Information
After Squid is configured to use HTTP 1.1, persistent connection are
enforced so the same already established connection will be used and the print
job is accepted by Squid with the first attempt. This change eliminates the delay.