Blame cups-busy-loop.patch
|
|
746dd9c |
diff -up cups-2.0.2/scheduler/client.c.busy-loop cups-2.0.2/scheduler/client.c
|
|
|
746dd9c |
--- cups-2.0.2/scheduler/client.c.busy-loop 2014-08-28 16:37:22.000000000 +0100
|
|
|
746dd9c |
+++ cups-2.0.2/scheduler/client.c 2015-03-16 17:24:32.506232983 +0000
|
|
|
746dd9c |
@@ -585,6 +585,17 @@ cupsdReadClient(cupsd_client_t *con) /*
|
|
|
746dd9c |
* connection and we need to shut it down...
|
|
|
746dd9c |
*/
|
|
|
746dd9c |
|
|
|
746dd9c |
+ if (!httpGetReady(con->http) && recv(httpGetFd(con->http), buf, 1, MSG_PEEK) < 1)
|
|
|
746dd9c |
+ {
|
|
|
746dd9c |
+ /*
|
|
|
746dd9c |
+ * Connection closed...
|
|
|
746dd9c |
+ */
|
|
|
746dd9c |
+
|
|
|
746dd9c |
+ cupsdLogClient(con, CUPSD_LOG_DEBUG, "Closing on EOF.");
|
|
|
746dd9c |
+ cupsdCloseClient(con);
|
|
|
746dd9c |
+ return;
|
|
|
746dd9c |
+ }
|
|
|
746dd9c |
+
|
|
|
746dd9c |
cupsdLogClient(con, CUPSD_LOG_DEBUG, "Closing on unexpected HTTP read state %s.",
|
|
|
746dd9c |
httpStateString(httpGetState(con->http)));
|
|
|
746dd9c |
cupsdCloseClient(con);
|
|
|
746dd9c |
@@ -1979,12 +1990,6 @@ cupsdReadClient(cupsd_client_t *con) /*
|
|
|
746dd9c |
|
|
|
746dd9c |
if (httpGetState(con->http) == HTTP_STATE_POST_SEND)
|
|
|
746dd9c |
{
|
|
|
746dd9c |
- /*
|
|
|
746dd9c |
- * Don't listen for activity until we decide to do something with this...
|
|
|
746dd9c |
- */
|
|
|
746dd9c |
-
|
|
|
746dd9c |
- cupsdAddSelect(httpGetFd(con->http), NULL, NULL, con);
|
|
|
746dd9c |
-
|
|
|
746dd9c |
if (con->file >= 0)
|
|
|
746dd9c |
{
|
|
|
746dd9c |
fstat(con->file, &filestats);
|