[PATCH 2/2] discover: Update env vars at init and suppress LVM warnings

Samuel Mendoza-Jonas sam at mendozajonas.com
Tue Aug 22 14:04:14 AEST 2017


Environment variables are not platform-specific so move
set_proxy_variables to device-handler and call it at handler init.

At the same time set LVM_SUPPRESS_FD_WARNINGS to ignore the "file
descriptor leaked" warnings when calling LVM-utilities, since we must
keep some file descriptors open in lib/process.

Signed-off-by: Samuel Mendoza-Jonas <sam at mendozajonas.com>
---
 discover/device-handler.c   | 20 ++++++++++++++++++++
 discover/platform-powerpc.c | 15 ---------------
 2 files changed, 20 insertions(+), 15 deletions(-)

diff --git a/discover/device-handler.c b/discover/device-handler.c
index ec4a6f6..c9878cc 100644
--- a/discover/device-handler.c
+++ b/discover/device-handler.c
@@ -312,6 +312,22 @@ const char *discover_device_get_param(struct discover_device *device,
 	return NULL;
 }
 
+static void set_env_variables(struct config *config)
+{
+	if (config->http_proxy)
+		setenv("http_proxy", config->http_proxy, 1);
+	else
+		unsetenv("http_proxy");
+
+	if (config->https_proxy)
+		setenv("https_proxy", config->https_proxy, 1);
+	else
+		unsetenv("https_proxy");
+
+	/* Reduce noise in the log from LVM listing open file descriptors */
+	setenv("LVM_SUPPRESS_FD_WARNINGS", "1", 1);
+}
+
 struct device_handler *device_handler_init(struct discover_server *server,
 		struct waitset *waitset, int dry_run)
 {
@@ -336,6 +352,8 @@ struct device_handler *device_handler_init(struct discover_server *server,
 	if (config_get()->safe_mode)
 		return handler;
 
+	set_env_variables(config_get());
+
 	rc = device_handler_init_sources(handler);
 	if (rc) {
 		talloc_free(handler);
@@ -385,6 +403,8 @@ void device_handler_reinit(struct device_handler *handler)
 	handler->ramdisks = NULL;
 	handler->n_ramdisks = 0;
 
+	set_env_variables(config_get());
+
 	device_handler_reinit_sources(handler);
 }
 
diff --git a/discover/platform-powerpc.c b/discover/platform-powerpc.c
index a4b955e..02d9a20 100644
--- a/discover/platform-powerpc.c
+++ b/discover/platform-powerpc.c
@@ -492,19 +492,6 @@ static void populate_bootdev_config(struct platform_powerpc *platform,
 	config->n_autoboot_opts = n_new;
 }
 
-static void set_proxy_variables(struct config *config)
-{
-	if (config->http_proxy)
-		setenv("http_proxy", config->http_proxy, 1);
-	else
-		unsetenv("http_proxy");
-
-	if (config->https_proxy)
-		setenv("https_proxy", config->https_proxy, 1);
-	else
-		unsetenv("https_proxy");
-}
-
 static void populate_config(struct platform_powerpc *platform,
 		struct config *config)
 {
@@ -560,7 +547,6 @@ static void populate_config(struct platform_powerpc *platform,
 	val = get_param(platform, "petitboot,https_proxy");
 	if (val)
 		config->https_proxy = talloc_strdup(config, val);
-	set_proxy_variables(config);
 }
 
 static char *iface_config_str(void *ctx, struct interface_config *config)
@@ -740,7 +726,6 @@ static int update_config(struct platform_powerpc *platform,
 	update_string_config(platform, "petitboot,http_proxy", val);
 	val = config->https_proxy ?: "";
 	update_string_config(platform, "petitboot,https_proxy", val);
-	set_proxy_variables(config);
 
 	update_network_config(platform, config);
 
-- 
2.14.0



More information about the Petitboot mailing list