xbps: add https proxy patch

This commit is contained in:
Duncaen 2019-04-08 13:47:03 +02:00
parent 5cce3f94b4
commit 524e6999e3
2 changed files with 53 additions and 1 deletions

View file

@ -0,0 +1,52 @@
From 07ec982b078f8672c8cdbb42bf2e861c969ab40b Mon Sep 17 00:00:00 2001
From: Duncaen <mail@duncano.de>
Date: Mon, 8 Apr 2019 13:16:53 +0200
Subject: [PATCH] lib/fetch/http.c: ignore headers after CONNECT response
---
lib/fetch/http.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git lib/fetch/http.c lib/fetch/http.c
index dcc7bf7d..cb27905e 100644
--- lib/fetch/http.c
+++ lib/fetch/http.c
@@ -721,6 +721,8 @@ http_connect(struct url *URL, struct url *purl, const char *flags, int *cached)
{
struct url *curl;
conn_t *conn;
+ const char *p;
+ hdr_t h;
int af, verbose;
#ifdef TCP_NOPUSH
int val;
@@ -759,10 +761,25 @@ http_connect(struct url *URL, struct url *purl, const char *flags, int *cached)
http_cmd(conn, "\r\n");
if (http_get_reply(conn) != HTTP_OK) {
+ http_seterr(conn->err);
fetch_close(conn);
return (NULL);
}
- http_get_reply(conn);
+ /* Read and discard the rest of the proxy response */
+ do {
+ switch ((h = http_next_header(conn, &p))) {
+ case hdr_syserror:
+ fetch_syserr();
+ fetch_close(conn);
+ return (NULL);
+ case hdr_error:
+ http_seterr(HTTP_PROTOCOL_ERROR);
+ fetch_close(conn);
+ return (NULL);
+ default:
+ /* ignore */ ;
+ }
+ } while (h > hdr_end);
}
if (strcasecmp(URL->scheme, SCHEME_HTTPS) == 0 &&
fetch_ssl(conn, URL, verbose) == -1) {
--
2.21.0

View file

@ -1,7 +1,7 @@
# Template file for 'xbps'
pkgname=xbps
version=0.53
revision=8
revision=9
bootstrap=yes
build_style=configure
short_desc="The XBPS package system utilities"