diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-07-23 19:39:47 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-07-23 19:39:47 +0000 |
commit | 69b8561975b4ad4220bba79e25eb746e9893df2e (patch) | |
tree | d8392832fa74bacc5141084bbea5321b4bade278 | |
parent | 16cfb7953f215a1299b3933fb4d38895017cb0d2 (diff) |
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: http://svn.digium.com/svn/asterisk/branches/1.4@133169 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | apps/app_chanspy.c | 15 | ||||
-rw-r--r-- | channels/chan_dahdi.c | 2 | ||||
-rw-r--r-- | include/asterisk/options.h | 1 | ||||
-rw-r--r-- | main/asterisk.c | 6 |
4 files changed, 17 insertions, 7 deletions
diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c index d9f20a177..4a11c3b5a 100644 --- a/apps/app_chanspy.c +++ b/apps/app_chanspy.c @@ -58,11 +58,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") /* "Zap/pseudo" is ten characters. * "DAHDI/pseudo" is twelve characters. */ -#ifdef HAVE_ZAPTEL -#define PSEUDO_CHAN_LEN 10 -#else -#define PSEUDO_CHAN_LEN 12 -#endif static const char *tdesc = "Listen to a channel, and optionally whisper into it"; static const char *app_chan = "ChanSpy"; @@ -151,7 +146,14 @@ AST_APP_OPTIONS(spy_opts, { AST_APP_OPTION_ARG('r', OPTION_RECORD, OPT_ARG_RECORD), }); -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 */ @@ -863,6 +865,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/channels/chan_dahdi.c b/channels/chan_dahdi.c index 722e398b8..13d914f64 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -5234,7 +5234,7 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb int features; char *b2 = NULL; DAHDI_PARAMS ps; - char chanprefix[strlen(dahdi_chan_name) + 4]; + char chanprefix[dahdi_chan_name_len + 4]; if (i->subs[index].owner) { ast_log(LOG_WARNING, "Channel %d already has a %s call\n", i->channel,subnames[index]); diff --git a/include/asterisk/options.h b/include/asterisk/options.h index 10c2126c2..89f01f58b 100644 --- a/include/asterisk/options.h +++ b/include/asterisk/options.h @@ -123,6 +123,7 @@ extern pid_t ast_mainpid; extern char record_cache_dir[AST_CACHE_DIR_LEN]; extern char debug_filename[AST_FILENAME_MAX]; extern const char *dahdi_chan_name; +extern int dahdi_chan_name_len; extern enum dahdi_chan_modes { CHAN_ZAP_MODE, CHAN_DAHDI_PLUS_ZAP_MODE, diff --git a/main/asterisk.c b/main/asterisk.c index 4bfa45036..5d7c3600d 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -174,12 +174,15 @@ char record_cache_dir[AST_CACHE_DIR_LEN] = AST_TMP_DIR; char debug_filename[AST_FILENAME_MAX] = ""; #ifdef HAVE_ZAPTEL char _dahdi_chan_name[AST_CHANNEL_NAME] = "Zap"; +int _dahdi_chan_name_len = 3; enum dahdi_chan_modes dahdi_chan_mode = CHAN_ZAP_MODE; #else char _dahdi_chan_name[AST_CHANNEL_NAME] = "DAHDI"; +int _dahdi_chan_name_len = 5; enum dahdi_chan_modes dahdi_chan_mode = CHAN_DAHDI_PLUS_ZAP_MODE; #endif const char *dahdi_chan_name; +int dahdi_chan_name_len; static int ast_socket = -1; /*!< UNIX Socket for allowing remote control */ static int ast_consock = -1; /*!< UNIX Socket for controlling another asterisk */ @@ -2593,11 +2596,13 @@ static void ast_readconfig(void) #ifdef HAVE_ZAPTEL if (ast_true(v->value)) { strcpy(_dahdi_chan_name, "DAHDI"); + _dahdi_chan_name_len = 5; dahdi_chan_mode = CHAN_DAHDI_PLUS_ZAP_MODE; } #else if (ast_false(v->value)) { strcpy(_dahdi_chan_name, "Zap"); + _dahdi_chan_name_len = 3; dahdi_chan_mode = CHAN_ZAP_MODE; } #endif @@ -2983,6 +2988,7 @@ int main(int argc, char *argv[]) } dahdi_chan_name = _dahdi_chan_name; + dahdi_chan_name_len = _dahdi_chan_name_len; #ifdef HAVE_ZAPTEL { |