Radish alpha
H
HardenedBSD Package Manager
Radicle
Git (anonymous pull)
Log in to clone via SSH
Allow users to define the proxies via pkg.conf
Baptiste Daroussin committed 13 years ago
commit 5ae2e03de2528fe0286138efe41be9b3db5a0cfa
parent 5cba692c3988f11769d7004d789f21438e35ffc6
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);
}