]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
As suggested by seanbright, the PSEUDO_CHAN_LEN in
authorMark Michelson <mmichelson@digium.com>
Wed, 23 Jul 2008 19:39:47 +0000 (19:39 +0000)
committerMark Michelson <mmichelson@digium.com>
Wed, 23 Jul 2008 19:39:47 +0000 (19:39 +0000)
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/branches/1.4@133169 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_chanspy.c
channels/chan_dahdi.c
include/asterisk/options.h
main/asterisk.c

index d9f20a177c6e1712a8c5d3e82828cf20f5605544..4a11c3b5af0e5e6c99713222516820a1d66da0aa 100644 (file)
@@ -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);
 
index 722e398b859456853a3c1fa9ca305020736400bd..13d914f64ec5ff03737cf62660d1dc43e28aa4c2 100644 (file)
@@ -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]);
index 10c2126c29235ad5149cb95ff15d1d1778f27306..89f01f58be59666c3c40366607435a4224b3b34e 100644 (file)
@@ -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,
index 4bfa450369d8e42fcf878c8ad94349bd5e50c5ac..5d7c3600d286e1813f58e6eff3f8d66f40a4485f 100644 (file)
@@ -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
        {