mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
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/branches/1.4@133169 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -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);
|
||||
|
||||
|
@@ -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]);
|
||||
|
@@ -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,
|
||||
|
@@ -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
|
||||
{
|
||||
|
Reference in New Issue
Block a user