# HG changeset patch # User Petr Cvachoucek # Date 1351235797 25200 # Node ID 0f7f40aad86aae2d98406711f754650452a3f15a # Parent 2652490f32cd7dd140e49e1429ec38b86f0fdeb3 7187280 Printer dialog print list is empty when printing concurrent jobs diff -r 2652490f32cd -r 0f7f40aad86a components/cups/patches/7187280.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/cups/patches/7187280.patch Fri Oct 26 00:16:37 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...