mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-21 09:10:36 +00:00
Setup environment variables for the benefit of child processes and disallow changing them.
(closes issue #14899) Reported by: jmls Patches: 20090916__issue14899.diff.txt uploaded by tilghman (license 14) Tested by: jmls git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@266385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -82,6 +82,9 @@ From 1.6.2 to 1.8:
|
|||||||
of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
|
of a Mailbox or Password, will, if it exists, jump to the 'a' extension in
|
||||||
the current dialplan context.
|
the current dialplan context.
|
||||||
|
|
||||||
|
* Environment variables that start with "AST_" are reserved to the system and
|
||||||
|
may no longer be set from the dialplan.
|
||||||
|
|
||||||
From 1.6.1 to 1.6.2:
|
From 1.6.1 to 1.6.2:
|
||||||
|
|
||||||
* SIP no longer sends the 183 progress message for early media by
|
* SIP no longer sends the 183 progress message for early media by
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
|
|||||||
</parameter>
|
</parameter>
|
||||||
</syntax>
|
</syntax>
|
||||||
<description>
|
<description>
|
||||||
|
Variables starting with <literal>AST_</literal> are reserved to the system and may not be set.
|
||||||
</description>
|
</description>
|
||||||
</function>
|
</function>
|
||||||
<function name="STAT" language="en_US">
|
<function name="STAT" language="en_US">
|
||||||
@@ -106,7 +107,7 @@ static int env_read(struct ast_channel *chan, const char *cmd, char *data,
|
|||||||
static int env_write(struct ast_channel *chan, const char *cmd, char *data,
|
static int env_write(struct ast_channel *chan, const char *cmd, char *data,
|
||||||
const char *value)
|
const char *value)
|
||||||
{
|
{
|
||||||
if (!ast_strlen_zero(data)) {
|
if (!ast_strlen_zero(data) && strncmp(data, "AST_", 4)) {
|
||||||
if (!ast_strlen_zero(value)) {
|
if (!ast_strlen_zero(value)) {
|
||||||
setenv(data, value, 1);
|
setenv(data, value, 1);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -3128,6 +3128,18 @@ static void run_startup_commands(void)
|
|||||||
ast_config_destroy(cfg);
|
ast_config_destroy(cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void env_init(void)
|
||||||
|
{
|
||||||
|
setenv("AST_SYSTEMNAME", ast_config_AST_SYSTEM_NAME, 1);
|
||||||
|
setenv("AST_BUILD_HOST", ast_build_hostname, 1);
|
||||||
|
setenv("AST_BUILD_DATE", ast_build_date, 1);
|
||||||
|
setenv("AST_BUILD_KERNEL", ast_build_kernel, 1);
|
||||||
|
setenv("AST_BUILD_MACHINE", ast_build_machine, 1);
|
||||||
|
setenv("AST_BUILD_OS", ast_build_os, 1);
|
||||||
|
setenv("AST_BUILD_USER", ast_build_user, 1);
|
||||||
|
setenv("AST_VERSION", ast_get_version(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int c;
|
int c;
|
||||||
@@ -3314,6 +3326,7 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
ast_readconfig();
|
ast_readconfig();
|
||||||
|
env_init();
|
||||||
|
|
||||||
if (ast_opt_remote && remotesock != NULL)
|
if (ast_opt_remote && remotesock != NULL)
|
||||||
ast_copy_string((char *) cfg_paths.socket_path, remotesock, sizeof(cfg_paths.socket_path));
|
ast_copy_string((char *) cfg_paths.socket_path, remotesock, sizeof(cfg_paths.socket_path));
|
||||||
|
|||||||
Reference in New Issue
Block a user