diff options
author | Xiang Fan <sfanxiang@gmail.com> | 2017-08-12 15:22:25 +0800 |
---|---|---|
committer | Richard Hughes <richard@hughsie.com> | 2017-08-14 09:28:08 +0100 |
commit | 69b161090ba597f8968c64b6c6aea6f118e98e68 (patch) | |
tree | 177bc1d616c2adf43762b1d4eb21e5cd598a5a88 | |
parent | 5eab4faae3452681375828297fb42093897b8a6b (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.c | 13 | ||||
-rw-r--r-- | backends/alpm/pk-backend-alpm.c | 7 | ||||
-rw-r--r-- | backends/alpm/pk-backend-alpm.h | 1 |
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; |