diff --git a/src/exec.c b/src/exec.c
index e60065834e3ba1f0fc123cbbe1c5a89907db2d6f..639b5d45b9dd310509dd0a763404de6e6ffabb7b 100644 (file)
--- a/src/exec.c
+++ b/src/exec.c
return (0);
} /* int exec_config }}} */
+static void set_environment (void) /* {{{ */
+{
+ char buffer[1024];
+
+#ifdef HAVE_SETENV
+ ssnprintf (buffer, sizeof (buffer), "%i", interval_g);
+ setenv ("COLLECTD_INTERVAL", buffer, /* overwrite = */ 1);
+
+ ssnprintf (buffer, sizeof (buffer), "%s", hostname_g);
+ setenv ("COLLECTD_HOSTNAME", buffer, /* overwrite = */ 1);
+#else
+ ssnprintf (buffer, sizeof (buffer), "COLLECTD_INTERVAL=%i", interval_g);
+ putenv (buffer);
+
+ ssnprintf (buffer, sizeof (buffer), "COLLECTD_HOSTNAME=%s", hostname_g);
+ putenv (buffer);
+#endif
+} /* }}} void set_environment */
+
__attribute__((noreturn))
static void exec_child (program_list_t *pl) /* {{{ */
{
@@ -479,6 +498,8 @@ static int fork_child (program_list_t *pl, int *fd_in, int *fd_out, int *fd_err)
close (fd_pipe_err[1]);
}
+ set_environment ();
+
/* Unblock all signals */
reset_signal_mask ();