[asterisk-commits] trunk r23675 - in /trunk: ./ doc/ include/asterisk/

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Sun Apr 30 07:55:06 MST 2006


Author: kpfleming
Date: Sun Apr 30 09:55:05 2006
New Revision: 23675

URL: http://svn.digium.com/view/asterisk?rev=23675&view=rev
Log:
add a command-line flag and option to force forking, even with -v or -d
rename a flag to have the proper name

Modified:
    trunk/asterisk.c
    trunk/cdr.c
    trunk/doc/asterisk-conf.txt
    trunk/include/asterisk/options.h

Modified: trunk/asterisk.c
URL: http://svn.digium.com/view/asterisk/trunk/asterisk.c?rev=23675&r1=23674&r2=23675&view=diff
==============================================================================
--- trunk/asterisk.c (original)
+++ trunk/asterisk.c Sun Apr 30 09:55:05 2006
@@ -2179,6 +2179,9 @@
 		/* Disable forking (-f at startup) */
 		} else if (!strcasecmp(v->name, "nofork")) {
 			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_NO_FORK);
+		/* Always fork, even if verbose or debug are enabled (-F at startup) */
+		} else if (!strcasecmp(v->name, "alwaysfork")) {
+			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_ALWAYS_FORK);
 		/* Run quietly (-q at startup ) */
 		} else if (!strcasecmp(v->name, "quiet")) {
 			ast_set2_flag(&ast_options, ast_true(v->value), AST_OPT_FLAG_QUIET);
@@ -2289,6 +2292,9 @@
 	/* Check for options */
 	while ((c = getopt(argc, argv, "tThfdvVqprRgciInx:U:G:C:L:M:")) != -1) {
 		switch (c) {
+		case 'F':
+			ast_set_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK);
+			break;
 		case 'd':
 			option_debug++;
 			ast_set_flag(&ast_options, AST_OPT_FLAG_NO_FORK);
@@ -2364,6 +2370,11 @@
 		case '?':
 			exit(1);
 		}
+	}
+
+	if (ast_opt_always_fork && (ast_opt_remote || ast_opt_console)) {
+		ast_log(LOG_WARNING, "'alwaysfork' is not compatible with console or remote console mode; ignored\n");
+		ast_clear_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK);
 	}
 
 	/* For remote connections, change the name of the remote connection.
@@ -2506,7 +2517,7 @@
 	} else
 		ast_log(LOG_WARNING, "Unable to open pid file '%s': %s\n", ast_config_AST_PID, strerror(errno));
 
-	if (!option_verbose && !option_debug && !ast_opt_no_fork && !ast_opt_console) {
+	if (ast_opt_always_fork || !ast_opt_no_fork) {
 		daemon(0, 0);
 		/* Blindly re-write pid file since we are forking */
 		unlink(ast_config_AST_PID);

Modified: trunk/cdr.c
URL: http://svn.digium.com/view/asterisk/trunk/cdr.c?rev=23675&r1=23674&r2=23675&view=diff
==============================================================================
--- trunk/cdr.c (original)
+++ trunk/cdr.c Sun Apr 30 09:55:05 2006
@@ -1087,7 +1087,7 @@
 				batchtime = cfg_time;
 		}
 		if ((end_before_h_value = ast_variable_retrieve(config, "general", "endbeforehexten")))
-			ast_set2_flag(&ast_options, ast_true(end_before_h_value), AST_OPT_END_CDR_BEFORE_H_EXTEN);
+			ast_set2_flag(&ast_options, ast_true(end_before_h_value), AST_OPT_FLAG_END_CDR_BEFORE_H_EXTEN);
 	}
 
 	if (enabled && !batchmode) {

Modified: trunk/doc/asterisk-conf.txt
URL: http://svn.digium.com/view/asterisk/trunk/doc/asterisk-conf.txt?rev=23675&r1=23674&r2=23675&view=diff
==============================================================================
--- trunk/doc/asterisk-conf.txt (original)
+++ trunk/doc/asterisk-conf.txt Sun Apr 30 09:55:05 2006
@@ -42,6 +42,7 @@
 verbose = 0					; Verbosity level for logging (-v)
 debug = 3					; Debug: "No" or value (1-4)
 nofork=yes | no					; Background execution disabled (-f)
+alwaysfork=yes | no				; Always background, even with -v or -d (-F)
 console= yes | no				; Console mode (-c)
 highpriority = yes | no				; Execute with high priority (-p)
 initcrypto = yes | no				; Initialize crypto at startup (-i)

Modified: trunk/include/asterisk/options.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/options.h?rev=23675&r1=23674&r2=23675&view=diff
==============================================================================
--- trunk/include/asterisk/options.h (original)
+++ trunk/include/asterisk/options.h Sun Apr 30 09:55:05 2006
@@ -71,9 +71,11 @@
 	/*! Suppress some warnings */
 	AST_OPT_FLAG_DONT_WARN = (1 << 18),
 	/*! End CDRs before the 'h' extension */
-	AST_OPT_END_CDR_BEFORE_H_EXTEN = (1 << 19),
+	AST_OPT_FLAG_END_CDR_BEFORE_H_EXTEN = (1 << 19),
 	/*! Use Zaptel Timing for generators if available */
-	AST_OPT_FLAG_INTERNAL_TIMING = (1 << 20)
+	AST_OPT_FLAG_INTERNAL_TIMING = (1 << 20),
+	/*! Always fork, even if verbose or debug settings are non-zero */
+	AST_OPT_FLAG_ALWAYS_FORK = (1 << 21),
 };
 
 /*! These are the options that set by default when Asterisk starts */
@@ -98,8 +100,9 @@
 #define ast_opt_reconnect		ast_test_flag(&ast_options, AST_OPT_FLAG_RECONNECT)
 #define ast_opt_transmit_silence	ast_test_flag(&ast_options, AST_OPT_FLAG_TRANSMIT_SILENCE)
 #define ast_opt_dont_warn		ast_test_flag(&ast_options, AST_OPT_FLAG_DONT_WARN)
-#define ast_opt_end_cdr_before_h_exten	ast_test_flag(&ast_options, AST_OPT_END_CDR_BEFORE_H_EXTEN)
+#define ast_opt_end_cdr_before_h_exten	ast_test_flag(&ast_options, AST_OPT_FLAG_END_CDR_BEFORE_H_EXTEN)
 #define ast_opt_internal_timing		ast_test_flag(&ast_options, AST_OPT_FLAG_INTERNAL_TIMING)
+#define ast_opt_always_fork		ast_test_flag(&ast_options, AST_OPT_FLAG_ALWAYS_FORK)
 
 extern struct ast_flags ast_options;
 



More information about the asterisk-commits mailing list