From: Mark Michelson Date: Wed, 23 Jul 2008 19:48:03 +0000 (+0000) Subject: Merged revisions 133169 via svnmerge from X-Git-Tag: 1.6.2.0-beta1~1602 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed6323cb7302b5cda151b19069c081a65925649b;p=thirdparty%2Fasterisk.git Merged revisions 133169 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r133169 | mmichelson | 2008-07-23 14:39:47 -0500 (Wed, 23 Jul 2008) | 12 lines As suggested by seanbright, the PSEUDO_CHAN_LEN in app_chanspy should be set at load time, not at compile time, since dahdi_chan_name is determined at load time. Also changed the next_unique_id_to_use to have the static qualifier. Also added the dahdi_chan_name_len variable so that strlen(dahdi_chan_name) isn't necessary. Thanks to seanbright for the suggestion. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@133171 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index 2646f56188..7615ad4c8b 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -52,9 +52,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define AST_NAME_STRLEN 256 #define NUM_SPYGROUPS 128 - /* "DAHDI/pseudo" is twelve characters */ -#define PSEUDO_CHAN_LEN 12 - static const char *tdesc = "Listen to a channel, and optionally whisper into it"; static const char *app_chan = "ChanSpy"; static const char *desc_chan = @@ -221,7 +218,14 @@ AST_APP_OPTIONS(spy_opts, { AST_APP_OPTION('d', OPTION_DTMF_SWITCH_MODES), }); -int next_unique_id_to_use = 0; +static int next_unique_id_to_use = 0; +static int PSEUDO_CHAN_LEN; + +static void determine_pseudo_chan_len(void) +{ + PSEUDO_CHAN_LEN = dahdi_chan_name_len + strlen("/pseudo"); +} + struct chanspy_translation_helper { /* spy data */ @@ -1105,6 +1109,7 @@ static int load_module(void) { int res = 0; + determine_pseudo_chan_len(); res |= ast_register_application(app_chan, chanspy_exec, tdesc, desc_chan); res |= ast_register_application(app_ext, extenspy_exec, tdesc, desc_ext); diff --git a/include/asterisk/options.h b/include/asterisk/options.h index c961d91750..3d6f89ceb1 100644 --- a/include/asterisk/options.h +++ b/include/asterisk/options.h @@ -142,6 +142,7 @@ extern pid_t ast_mainpid; extern char record_cache_dir[AST_CACHE_DIR_LEN]; extern char dahdi_chan_name[AST_CHANNEL_NAME]; +extern int dahdi_chan_name_len; extern int ast_language_is_prefix; diff --git a/main/asterisk.c b/main/asterisk.c index 9cd52efb5a..21b6497738 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -165,6 +165,7 @@ int option_maxfiles; /*!< Max number of open file handles (files, sockets) */ long option_minmemfree; /*!< Minimum amount of free system memory - stop accepting calls if free memory falls below this watermark */ #endif char dahdi_chan_name[AST_CHANNEL_NAME] = "ZAP"; +int dahdi_chan_name_len = 3; /*! @} */ @@ -2794,6 +2795,7 @@ static void ast_readconfig(void) } else if (!strcasecmp(v->name, "dahdichanname")) { if (!strcasecmp(v->value, "yes")) { ast_copy_string(dahdi_chan_name, "DAHDI", sizeof(dahdi_chan_name)); + dahdi_chan_name_len = 5; } } else if (!strcasecmp(v->name, "entityid")) { struct ast_eid tmp_eid;