[asterisk-commits] qwell: trunk r63967 - in /trunk: Makefile main/asterisk.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Fri May 11 12:56:58 MST 2007


Author: qwell
Date: Fri May 11 14:56:57 2007
New Revision: 63967

URL: http://svn.digium.com/view/asterisk?view=rev&rev=63967
Log:
Add autosystemname setting to asterisk.conf

When enabled, it will set the systemname to be the hostname of the system

Issue 9713, patch by Juggie - slightly modified by me, to "failover" to localhost

Modified:
    trunk/Makefile
    trunk/main/asterisk.c

Modified: trunk/Makefile
URL: http://svn.digium.com/view/asterisk/trunk/Makefile?view=diff&rev=63967&r1=63966&r2=63967
==============================================================================
--- trunk/Makefile (original)
+++ trunk/Makefile Fri May 11 14:56:57 2007
@@ -545,6 +545,7 @@
 		echo ";[options]" ; \
 		echo ";internal_timing = yes" ; \
 		echo ";systemname = my_system_name ; prefix uniqueid with a system name for global uniqueness issues" ; \
+		echo ";autosystemname = yes ; automatically set systemname to hostname - uses 'localhost' on failure" ; \
 		echo "; Changing the following lines may compromise your security." ; \
 		echo ";[files]" ; \
 		echo ";astctlpermissions = 0660" ; \

Modified: trunk/main/asterisk.c
URL: http://svn.digium.com/view/asterisk/trunk/main/asterisk.c?view=diff&rev=63967&r1=63966&r2=63967
==============================================================================
--- trunk/main/asterisk.c (original)
+++ trunk/main/asterisk.c Fri May 11 14:56:57 2007
@@ -2374,6 +2374,7 @@
 	struct ast_config *cfg;
 	struct ast_variable *v;
 	char *config = AST_CONFIG_FILE;
+	char hostname[MAXHOSTNAMELEN] = "";
 
 	if (ast_opt_override_config) {
 		cfg = ast_config_load(ast_config_AST_CONFIG_FILE);
@@ -2523,6 +2524,15 @@
 			ast_copy_string(ast_config_AST_RUN_GROUP, v->value, sizeof(ast_config_AST_RUN_GROUP));
 		} else if (!strcasecmp(v->name, "systemname")) {
 			ast_copy_string(ast_config_AST_SYSTEM_NAME, v->value, sizeof(ast_config_AST_SYSTEM_NAME));
+		} else if (!strcasecmp(v->name, "autosystemname")) {
+			if (ast_true(v->value)) {
+				if (!gethostname(hostname, sizeof(hostname) - 1))
+					ast_copy_string(ast_config_AST_SYSTEM_NAME, hostname, sizeof(ast_config_AST_SYSTEM_NAME));
+				else {
+					ast_log(LOG_ERROR, "Cannot obtain hostname for this system.  Using 'localhost' instead.\n");
+					ast_copy_string(ast_config_AST_SYSTEM_NAME, "localhost", sizeof(ast_config_AST_SYSTEM_NAME));
+				}
+			}
 		} else if (!strcasecmp(v->name, "languageprefix")) {
 			ast_language_is_prefix = ast_true(v->value);
 #if defined(HAVE_SYSINFO)



More information about the asterisk-commits mailing list