Compare commits
1 Commits
6388fa51b8
...
da6173cb74
Author | SHA1 | Date | |
---|---|---|---|
|
da6173cb74 |
@ -1,64 +0,0 @@
|
||||
From d60341b3355fd8825bec00792f301ef99d715a93 Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Dohnal <zdohnal@redhat.com>
|
||||
Date: Wed, 3 Apr 2024 10:39:24 +0200
|
||||
Subject: [PATCH] scheduler: Fix sending response headers to client
|
||||
|
||||
Sometimes headers are not correctly copied into response to the client
|
||||
(some are missing). It happens because `sent_header` is set prematurely
|
||||
before the actual send happens. The present code in affected `cupsdWriteClient`
|
||||
scope looks like code remains from CUPS 1.6.3.
|
||||
|
||||
With the change, testing via curl gives reliable results all time.
|
||||
---
|
||||
scheduler/client.c | 15 ++++-----------
|
||||
1 file changed, 4 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/scheduler/client.c b/scheduler/client.c
|
||||
index 62ac21c69..e7e312b8e 100644
|
||||
--- a/scheduler/client.c
|
||||
+++ b/scheduler/client.c
|
||||
@@ -2400,23 +2400,12 @@ cupsdWriteClient(cupsd_client_t *con) /* I - Client connection */
|
||||
httpSetField(con->http, field, value);
|
||||
|
||||
if (field == HTTP_FIELD_LOCATION)
|
||||
- {
|
||||
con->pipe_status = HTTP_STATUS_SEE_OTHER;
|
||||
- con->sent_header = 2;
|
||||
- }
|
||||
- else
|
||||
- con->sent_header = 1;
|
||||
}
|
||||
else if (!_cups_strcasecmp(con->header, "Status") && value)
|
||||
- {
|
||||
con->pipe_status = (http_status_t)atoi(value);
|
||||
- con->sent_header = 2;
|
||||
- }
|
||||
else if (!_cups_strcasecmp(con->header, "Set-Cookie") && value)
|
||||
- {
|
||||
httpSetCookie(con->http, value);
|
||||
- con->sent_header = 1;
|
||||
- }
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2451,6 +2440,8 @@ cupsdWriteClient(cupsd_client_t *con) /* I - Client connection */
|
||||
cupsdCloseClient(con);
|
||||
return;
|
||||
}
|
||||
+
|
||||
+ con->sent_header = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2459,6 +2450,8 @@ cupsdWriteClient(cupsd_client_t *con) /* I - Client connection */
|
||||
cupsdCloseClient(con);
|
||||
return;
|
||||
}
|
||||
+
|
||||
+ con->sent_header = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
--
|
||||
2.44.0
|
||||
|
@ -24,7 +24,7 @@ Summary: CUPS printing system
|
||||
Name: cups
|
||||
Epoch: 1
|
||||
Version: 2.3.3%{OP_VER}
|
||||
Release: 25%{?dist}
|
||||
Release: 24%{?dist}
|
||||
License: ASL 2.0
|
||||
Url: http://www.cups.org/
|
||||
# Apple stopped uploading the new versions into github, use OpenPrinting fork
|
||||
@ -132,8 +132,6 @@ Patch37: cups-preservejobfiles-leak.patch
|
||||
Patch38: 0001-scheduler-conf.c-Print-to-stderr-if-we-don-t-open-cu.patch
|
||||
# RHEL-19495 cupsGetJobs fails to connect if poll() gets POLLOUT|POLLHUP in revents
|
||||
Patch39: 0001-httpAddrConnect2-Check-for-error-if-POLLHUP-is-in-va.patch
|
||||
# https://github.com/OpenPrinting/cups/pull/927
|
||||
Patch40: 0001-scheduler-Fix-sending-response-headers-to-client.patch
|
||||
|
||||
|
||||
##### Patches removed because IMHO they aren't no longer needed
|
||||
@ -395,8 +393,6 @@ to CUPS daemon. This solution will substitute printer drivers and raw queues in
|
||||
%patch38 -p1 -b .log-stderr
|
||||
# RHEL-19495 cupsGetJobs fails to connect if poll() gets POLLOUT|POLLHUP in revents
|
||||
%patch39 -p1 -b .cupsgetjobs-pollhup
|
||||
# https://github.com/OpenPrinting/cups/pull/927
|
||||
%patch40 -p1 -b .sent-headers
|
||||
|
||||
%if %{lspp}
|
||||
# LSPP support.
|
||||
@ -831,9 +827,6 @@ rm -f %{cups_serverbin}/backend/smb
|
||||
%{_mandir}/man7/ippeveps.7.gz
|
||||
|
||||
%changelog
|
||||
* Fri Apr 05 2024 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.3op2-25
|
||||
- RHEL-29764 cups doesn't send Content-Type header back to client when Set-Cookie is seen first
|
||||
|
||||
* Mon Feb 26 2024 Zdenek Dohnal <zdohnal@redhat.com> - 1:2.3.3op2-24
|
||||
- revert RHEL-19205 - new packages are not needed
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user