From d038e5b6d155784575f62a66a8bb7e874173e92e Mon Sep 17 00:00:00 2001 From: Vladislav Grigoryev Date: Wed, 1 Sep 2021 08:48:08 +0300 Subject: [PATCH] libopkg: support https_proxy Add support for https_proxy since feeds switched to HTTPS. In general case, https_proxy may not match http_proxy. Process http_proxy, https_proxy, and ftp_proxy separately. Signed-off-by: Vladislav Grigoryev --- libopkg/opkg_conf.c | 1 + libopkg/opkg_conf.h | 1 + libopkg/opkg_download.c | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/libopkg/opkg_conf.c b/libopkg/opkg_conf.c index e36f66b..0cbd1cc 100644 --- a/libopkg/opkg_conf.c +++ b/libopkg/opkg_conf.c @@ -58,6 +58,7 @@ opkg_option_t options[] = { {"ftp_proxy", OPKG_OPT_TYPE_STRING, &_conf.ftp_proxy}, {"http_proxy", OPKG_OPT_TYPE_STRING, &_conf.http_proxy}, {"http_timeout", OPKG_OPT_TYPE_STRING, &_conf.http_timeout}, + {"https_proxy", OPKG_OPT_TYPE_STRING, &_conf.https_proxy}, {"no_proxy", OPKG_OPT_TYPE_STRING, &_conf.no_proxy}, {"test", OPKG_OPT_TYPE_BOOL, &_conf.noaction}, {"noaction", OPKG_OPT_TYPE_BOOL, &_conf.noaction}, diff --git a/libopkg/opkg_conf.h b/libopkg/opkg_conf.h index cd69ceb..781c8f4 100644 --- a/libopkg/opkg_conf.h +++ b/libopkg/opkg_conf.h @@ -96,6 +96,7 @@ struct opkg_conf { /* proxy options */ char *http_proxy; char *http_timeout; + char *https_proxy; char *ftp_proxy; char *no_proxy; char *proxy_user; diff --git a/libopkg/opkg_download.c b/libopkg/opkg_download.c index cce4b6d..af91f12 100644 --- a/libopkg/opkg_download.c +++ b/libopkg/opkg_download.c @@ -133,6 +133,12 @@ opkg_download(const char *src, const char *dest_file_name, conf->http_proxy); setenv("http_proxy", conf->http_proxy, 1); } + if (conf->https_proxy) { + opkg_msg(DEBUG, + "Setting environment variable: https_proxy = %s.\n", + conf->https_proxy); + setenv("https_proxy", conf->https_proxy, 1); + } if (conf->ftp_proxy) { opkg_msg(DEBUG, "Setting environment variable: ftp_proxy = %s.\n", @@ -160,7 +166,7 @@ opkg_download(const char *src, const char *dest_file_name, argv[i++] = "--timeout"; argv[i++] = conf->http_timeout; } - if (conf->http_proxy || conf->ftp_proxy) { + if (conf->http_proxy || conf->https_proxy || conf->ftp_proxy) { argv[i++] = "-Y"; argv[i++] = "on"; } -- 2.30.2