# HG changeset patch # User Petr Cvachoucek # Date 1351060279 25200 # Node ID a4a5919f480bf006a002c3e44fc26d1ecd567a84 # Parent 21ebf6c9a4fa5ae8f2f1cc59424be7c3a90f5039 7187280 Printer dialog print list is empty when printing concurrent jobs diff -r 21ebf6c9a4fa -r a4a5919f480b components/cups/patches/7187280.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/cups/patches/7187280.patch Tue Oct 23 23:31:19 2012 -0700 @@ -0,0 +1,51 @@ +--- cups/util.c Mon Jan 19 23:26:36 1970 ++++ cups/util.c Mon Jan 19 23:26:36 1970 +@@ -70,6 +70,9 @@ + # include + #endif /* WIN32 || __EMX__ */ + ++#if defined(__sun) ++#include /* need this for TCPS_ESTABLISHED ... */ ++#endif + + /* + * Local functions... +@@ -1659,6 +1662,38 @@ + cg->http = NULL; + } + } ++ ++#if defined(__sun) ++ /* ++ * Check the connection state. ++ * If the connection wasn't used for some time, the server could close it. ++ * The socket state would change to CLOSE_WAIT in such case. ++ */ ++ if (cg->http) ++ { ++ struct tcp_info tcpi; ++ socklen_t len = sizeof(tcpi); ++ memset(&tcpi, 0, sizeof(tcpi)); ++ ++ /* ++ * Get TCP connection info. ++ */ ++ if (getsockopt(cg->http->fd, IPPROTO_TCP, TCP_INFO, &tcpi, &len) == 0) ++ { ++ /* ++ * Successfully got TCP connection state. Check it. ++ */ ++ if (tcpi.tcpi_state != TCPS_ESTABLISHED) ++ { ++ /* ++ * Need to close the current connection. ++ */ ++ httpClose(cg->http); ++ cg->http = NULL; ++ } ++ } ++ } ++#endif + + /* + * (Re)connect as needed...