From ed6323cb7302b5cda151b19069c081a65925649b Mon Sep 17 00:00:00 2001 From: Mark Michelson <mmichelson@digium.com> Date: Wed, 23 Jul 2008 19:48:03 +0000 Subject: [PATCH] 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 --- apps/app_chanspy.c | 13 +++++++++---- include/asterisk/options.h | 1 + main/asterisk.c | 2 ++ 3 files changed, 12 insertions(+), 4 deletions(-) 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; -- GitLab