summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiang Fan <sfanxiang@gmail.com>2017-08-12 15:22:25 +0800
committerRichard Hughes <richard@hughsie.com>2017-08-14 09:28:08 +0100
commit69b161090ba597f8968c64b6c6aea6f118e98e68 (patch)
tree177bc1d616c2adf43762b1d4eb21e5cd598a5a88
parent5eab4faae3452681375828297fb42093897b8a6b (diff)
alpm: read the session proxy settings for each job
If we set the proxy only once, the user won't be able to update it without killing the daemon.
-rw-r--r--backends/alpm/pk-alpm-environment.c13
-rw-r--r--backends/alpm/pk-backend-alpm.c7
-rw-r--r--backends/alpm/pk-backend-alpm.h1
3 files changed, 13 insertions, 8 deletions
diff --git a/backends/alpm/pk-alpm-environment.c b/backends/alpm/pk-alpm-environment.c
index ed26f3eb4..cbe725e1c 100644
--- a/backends/alpm/pk-alpm-environment.c
+++ b/backends/alpm/pk-alpm-environment.c
@@ -54,35 +54,46 @@ pk_alpm_environment_initialize (PkBackendJob *job)
if (!pk_strzero (tmp)) {
g_autofree gchar *uri = pk_backend_convert_uri (tmp);
g_setenv ("http_proxy", uri, TRUE);
+ } else {
+ g_unsetenv ("http_proxy");
}
tmp = pk_backend_job_get_proxy_https (job);
if (!pk_strzero (tmp)) {
g_autofree gchar *uri = pk_backend_convert_uri (tmp);
g_setenv ("https_proxy", uri, TRUE);
+ } else {
+ g_unsetenv ("https_proxy");
}
tmp = pk_backend_job_get_proxy_ftp (job);
if (!pk_strzero (tmp)) {
g_autofree gchar *uri = pk_backend_convert_uri (tmp);
g_setenv ("ftp_proxy", uri, TRUE);
+ } else {
+ g_unsetenv ("ftp_proxy");
}
tmp = pk_backend_job_get_proxy_socks (job);
if (!pk_strzero (tmp)) {
g_autofree gchar *uri = pk_backend_convert_uri_socks (tmp);
g_setenv ("all_proxy", uri, TRUE);
+ } else {
+ g_unsetenv ("all_proxy");
}
tmp = pk_backend_job_get_no_proxy (job);
if (!pk_strzero (tmp)) {
g_setenv ("no_proxy", tmp, TRUE);
+ } else {
+ g_unsetenv ("no_proxy");
}
tmp = pk_backend_job_get_pac (job);
if (!pk_strzero (tmp)) {
g_autofree gchar *uri = pk_backend_convert_uri (tmp);
g_setenv ("pac", uri, TRUE);
+ } else {
+ g_unsetenv ("pac");
}
}
-
diff --git a/backends/alpm/pk-backend-alpm.c b/backends/alpm/pk-backend-alpm.c
index f5f678279..16e34fd79 100644
--- a/backends/alpm/pk-backend-alpm.c
+++ b/backends/alpm/pk-backend-alpm.c
@@ -225,10 +225,5 @@ pk_alpm_finish (PkBackendJob *job, GError *error)
void
pk_backend_start_job (PkBackend *backend, PkBackendJob *job)
{
- PkBackendAlpmPrivate *priv = pk_backend_get_user_data (backend);
- if (g_once_init_enter (&priv->environment_initialized))
- {
- pk_alpm_environment_initialize (job);
- g_once_init_leave (&priv->environment_initialized, TRUE);
- }
+ pk_alpm_environment_initialize (job);
}
diff --git a/backends/alpm/pk-backend-alpm.h b/backends/alpm/pk-backend-alpm.h
index 96485b2f3..6ac755374 100644
--- a/backends/alpm/pk-backend-alpm.h
+++ b/backends/alpm/pk-backend-alpm.h
@@ -26,7 +26,6 @@
#include <pk-backend.h>
typedef struct {
- gsize environment_initialized;
alpm_db_t *localdb;
alpm_list_t *syncfirsts;
alpm_list_t *holdpkgs;