[packages/cups] - rel 2; fix http auth for browsers like google chrome
arekm
arekm at pld-linux.org
Wed Jun 6 18:59:03 CEST 2018
commit 9f9bc2e945ba6f20a57dc2fd7dbd8020603ff5dd
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date: Wed Jun 6 18:58:55 2018 +0200
- rel 2; fix http auth for browsers like google chrome
cups-bug-5289.patch | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++++
cups.spec | 4 +++-
2 files changed, 57 insertions(+), 1 deletion(-)
---
diff --git a/cups.spec b/cups.spec
index eaa45a3..11bf7b4 100644
--- a/cups.spec
+++ b/cups.spec
@@ -13,7 +13,7 @@ Summary(pl.UTF-8): Ogólny system druku dla Uniksa
Summary(pt_BR.UTF-8): Sistema Unix de Impressão
Name: cups
Version: 2.2.7
-Release: 1
+Release: 2
Epoch: 1
License: LGPL v2 (libraries), GPL v2 (the rest)
Group: Applications/Printing
@@ -61,6 +61,7 @@ Patch114: cups-freebind.patch
Patch115: cups-ipp-multifile.patch
Patch116: cups-web-devices-timeout.patch
Patch117: cups-lspp.patch
+Patch118: cups-bug-5289.patch
URL: http://www.cups.org/
BuildRequires: acl-devel
%{?with_lspp:BuildRequires: audit-libs-devel}
@@ -294,6 +295,7 @@ Wsparcie dla LPD w serwerze wydruków CUPS.
%patch115 -p1
%patch116 -p1
%patch117 -p1
+%patch118 -p1
%build
%{__aclocal} -I config-scripts
diff --git a/cups-bug-5289.patch b/cups-bug-5289.patch
new file mode 100644
index 0000000..8324229
--- /dev/null
+++ b/cups-bug-5289.patch
@@ -0,0 +1,54 @@
+From bb10adda6f2f41448d809c3fe86175b5b69cba7b Mon Sep 17 00:00:00 2001
+From: Michael R Sweet <michael.r.sweet at gmail.com>
+Date: Mon, 16 Apr 2018 19:19:13 -0400
+Subject: [PATCH] Try again to mirror fix (Issue #5289)
+
+---
+ scheduler/client.c | 14 +++++++++++++-
+ scheduler/client.h | 1 +
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/scheduler/client.c b/scheduler/client.c
+index f68924aa1..1c4760bfd 100644
+--- a/scheduler/client.c
++++ b/scheduler/client.c
+@@ -818,6 +818,18 @@ cupsdReadClient(cupsd_client_t *con) /* I - Client to read from */
+
+ if (status == HTTP_STATUS_OK)
+ {
++ /*
++ * Record whether the client is a web browser. "Mozilla" was the original
++ * and it seems that every web browser in existence now uses that as the
++ * prefix with additional information identifying *which* browser.
++ *
++ * Chrome (at least) has problems with multiple WWW-Authenticate values in
++ * a single header, so we only report Basic or Negotiate to web browsers and
++ * leave the multiple choices to the native CUPS client...
++ */
++
++ con->is_browser = !strncmp(httpGetField(con->http, HTTP_FIELD_USER_AGENT), "Mozilla/", 8);
++
+ if (httpGetField(con->http, HTTP_FIELD_ACCEPT_LANGUAGE)[0])
+ {
+ /*
+@@ -2361,7 +2373,7 @@ cupsdSendHeader(
+ strlcpy(auth_str, "Negotiate", sizeof(auth_str));
+ }
+
+- if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE &&
++ if (con->best && auth_type != CUPSD_AUTH_NEGOTIATE && !con->is_browser &&
+ !_cups_strcasecmp(httpGetHostname(con->http, NULL, 0), "localhost"))
+ {
+ /*
+diff --git a/scheduler/client.h b/scheduler/client.h
+index 7705f2c59..beddab0cc 100644
+--- a/scheduler/client.h
++++ b/scheduler/client.h
+@@ -30,6 +30,7 @@ struct cupsd_client_s
+ struct timeval start; /* Request start time */
+ http_state_t operation; /* Request operation */
+ off_t bytes; /* Bytes transferred for this request */
++ int is_browser; /* Is the client a web browser? */
+ int type; /* AuthType for username */
+ char username[HTTP_MAX_VALUE],
+ /* Username from Authorization: line */
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/cups.git/commitdiff/9f9bc2e945ba6f20a57dc2fd7dbd8020603ff5dd
More information about the pld-cvs-commit
mailing list