Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
Allow users to define the proxies via pkg.conf
Baptiste Daroussin committed 13 years ago
commit 5ae2e03de2528fe0286138efe41be9b3db5a0cfa
parent 5cba692
2 files changed +22 -0
modified libpkg/pkg.h.in
@@ -312,6 +312,8 @@ typedef enum _pkg_config_key {
	PKG_CONFIG_PLUGINS_CONF_DIR,
	PKG_CONFIG_PERMISSIVE,
	PKG_CONFIG_REPO_AUTOUPDATE,
+
	PKG_CONFIG_HTTP_PROXY,
+
	PKG_CONFIG_FTP_PROXY,
} pkg_config_key;

typedef enum {
modified libpkg/pkg_config.c
@@ -196,6 +196,16 @@ static struct config_entry c[] = {
		"REPO_AUTOUPDATE",
		"YES",
	},
+
	[PKG_CONFIG_HTTP_PROXY] = {
+
		PKG_CONFIG_STRING,
+
		"HTTP_PROXY",
+
		NULL,
+
	},
+
	[PKG_CONFIG_FTP_PROXY] = {
+
		PKG_CONFIG_STRING,
+
		"FTP_PROXY",
+
		NULL,
+
	},
};

static bool parsed = false;
@@ -548,6 +558,7 @@ pkg_init(const char *path)
	size_t i;
	const char *val = NULL;
	const char *errstr = NULL;
+
	const char *proxy = NULL;
	struct pkg_config *conf;

	pkg_get_myarch(myabi, BUFSIZ);
@@ -652,6 +663,15 @@ pkg_init(const char *path)
	disable_plugins_if_static();

	parsed = true;
+

+
	/* set the environement variable for libfetch for proxies if any */
+
	pkg_config_string(PKG_CONFIG_HTTP_PROXY, &proxy);
+
	if (proxy != NULL)
+
		setenv("HTTP_PROXY", proxy, 1);
+
	pkg_config_string(PKG_CONFIG_FTP_PROXY, &proxy);
+
	if (proxy != NULL)
+
		setenv("FTP_PROXY", proxy, 1);
+

	return (EPKG_OK);
}