cups/cups-str4538.patch

27 lines
1000 B
Diff

diff -up cups-2.0.3/scheduler/client.c.str4538 cups-2.0.3/scheduler/client.c
--- cups-2.0.3/scheduler/client.c.str4538 2015-06-25 08:35:22.196788744 +0100
+++ cups-2.0.3/scheduler/client.c 2015-06-25 08:35:38.079786648 +0100
@@ -2294,6 +2294,9 @@ cupsdSendError(cupsd_client_t *con, /* I
http_status_t code, /* I - Error code */
int auth_type)/* I - Authentication type */
{
+ char location[HTTP_MAX_VALUE]; /* Location field */
+
+
cupsdLogClient(con, CUPSD_LOG_DEBUG2, "cupsdSendError code=%d, auth_type=%d",
code, auth_type);
@@ -2326,8 +2329,12 @@ cupsdSendError(cupsd_client_t *con, /* I
* never disable it in that case.
*/
+ strlcpy(location, httpGetField(con->http, HTTP_FIELD_LOCATION), sizeof(location));
+
httpClearFields(con->http);
+ httpSetField(con->http, HTTP_FIELD_LOCATION, location);
+
if (code >= HTTP_STATUS_BAD_REQUEST && con->type != CUPSD_AUTH_NEGOTIATE)
httpSetKeepAlive(con->http, HTTP_KEEPALIVE_OFF);