aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-23 20:42:30 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-23 20:42:30 +0000
commit8ec1a1b17cbd659efff717d65267cd0c055d19f9 (patch)
treed1921955cd0d82c5d4d7ee8e54d46a601d82725d
parent69b8561975b4ad4220bba79e25eb746e9893df2e (diff)
make some more changes to the dahdi/zap channel name support stuff to ensure allthe globals are 'const', and clean up mmichelson's changes to app_chanspy to simplify the code
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@133226 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--apps/app_chanspy.c13
-rw-r--r--apps/app_dahdibarge.c4
-rw-r--r--apps/app_dahdiras.c4
-rw-r--r--channels/chan_dahdi.c8
-rw-r--r--include/asterisk/options.h6
-rw-r--r--main/asterisk.c22
6 files changed, 28 insertions, 29 deletions
diff --git a/apps/app_chanspy.c b/apps/app_chanspy.c
index 4a11c3b5a..80af5b234 100644
--- a/apps/app_chanspy.c
+++ b/apps/app_chanspy.c
@@ -147,13 +147,6 @@ AST_APP_OPTIONS(spy_opts, {
});
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 */
@@ -473,6 +466,11 @@ static struct chanspy_ds *next_channel(struct ast_channel *chan,
{
struct ast_channel *this;
char channel_name[AST_CHANNEL_NAME];
+ static size_t PSEUDO_CHAN_LEN = 0;
+
+ if (!PSEUDO_CHAN_LEN) {
+ PSEUDO_CHAN_LEN = *dahdi_chan_name_len + strlen("/pseudo");
+ }
redo:
if (spec)
@@ -865,7 +863,6 @@ 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/apps/app_dahdibarge.c b/apps/app_dahdibarge.c
index 88610cc36..a26af7f1d 100644
--- a/apps/app_dahdibarge.c
+++ b/apps/app_dahdibarge.c
@@ -336,7 +336,7 @@ static int unload_module(void)
{
int res = 0;
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
res |= ast_unregister_application(dahdi_app);
}
@@ -351,7 +351,7 @@ static int load_module(void)
{
int res = 0;
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
res |= ast_register_application(dahdi_app, exec_dahdi, dahdi_synopsis, dahdi_descrip);
}
diff --git a/apps/app_dahdiras.c b/apps/app_dahdiras.c
index 1012a5fbe..9c92cda32 100644
--- a/apps/app_dahdiras.c
+++ b/apps/app_dahdiras.c
@@ -260,7 +260,7 @@ static int unload_module(void)
{
int res = 0;
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
res |= ast_unregister_application(dahdi_app);
}
@@ -275,7 +275,7 @@ static int load_module(void)
{
int res = 0;
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
res |= ast_register_application(dahdi_app, exec, dahdi_synopsis, dahdi_descrip);
}
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 13d914f64..e1acd1bd3 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[dahdi_chan_name_len + 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]);
@@ -10584,7 +10584,7 @@ static int dahdi_action_restart(struct mansession *s, const struct message *m)
}
#define local_astman_unregister(a) do { \
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) { \
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) { \
ast_manager_unregister("DAHDI" a); \
} \
ast_manager_unregister("Zap" a); \
@@ -11583,7 +11583,7 @@ static int setup_dahdi(int reload)
}
#define local_astman_register(a, b, c, d) do { \
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) { \
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) { \
ast_manager_register("DAHDI" a, b, dahdi_ ## c, d); \
} \
ast_manager_register("Zap" a, b, zap_ ## c, d); \
@@ -11611,7 +11611,7 @@ static int load_module(void)
if ((res = setup_dahdi(0))) {
return AST_MODULE_LOAD_DECLINE;
}
- if (dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
+ if (*dahdi_chan_mode == CHAN_DAHDI_PLUS_ZAP_MODE) {
chan_tech = &dahdi_tech;
} else {
chan_tech = &zap_tech;
diff --git a/include/asterisk/options.h b/include/asterisk/options.h
index 89f01f58b..01eab6e29 100644
--- a/include/asterisk/options.h
+++ b/include/asterisk/options.h
@@ -123,11 +123,11 @@ 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 {
+extern const size_t *dahdi_chan_name_len;
+extern const enum dahdi_chan_modes {
CHAN_ZAP_MODE,
CHAN_DAHDI_PLUS_ZAP_MODE,
-} dahdi_chan_mode;
+} *dahdi_chan_mode;
extern int ast_language_is_prefix;
diff --git a/main/asterisk.c b/main/asterisk.c
index 5d7c3600d..a581508e5 100644
--- a/main/asterisk.c
+++ b/main/asterisk.c
@@ -173,16 +173,17 @@ int option_maxcalls; /*!< Max number of active calls */
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;
+static char _dahdi_chan_name[AST_CHANNEL_NAME] = "Zap";
+static size_t _dahdi_chan_name_len = 3;
+static 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;
+static char _dahdi_chan_name[AST_CHANNEL_NAME] = "DAHDI";
+static size_t _dahdi_chan_name_len = 5;
+static enum dahdi_chan_modes _dahdi_chan_mode = CHAN_DAHDI_PLUS_ZAP_MODE;
#endif
const char *dahdi_chan_name;
-int dahdi_chan_name_len;
+const size_t *dahdi_chan_name_len;
+const enum dahdi_chan_modes *dahdi_chan_mode;
static int ast_socket = -1; /*!< UNIX Socket for allowing remote control */
static int ast_consock = -1; /*!< UNIX Socket for controlling another asterisk */
@@ -2597,13 +2598,13 @@ static void ast_readconfig(void)
if (ast_true(v->value)) {
strcpy(_dahdi_chan_name, "DAHDI");
_dahdi_chan_name_len = 5;
- dahdi_chan_mode = CHAN_DAHDI_PLUS_ZAP_MODE;
+ _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;
+ _dahdi_chan_mode = CHAN_ZAP_MODE;
}
#endif
}
@@ -2988,7 +2989,8 @@ int main(int argc, char *argv[])
}
dahdi_chan_name = _dahdi_chan_name;
- dahdi_chan_name_len = _dahdi_chan_name_len;
+ dahdi_chan_name_len = &_dahdi_chan_name_len;
+ dahdi_chan_mode = &_dahdi_chan_mode;
#ifdef HAVE_ZAPTEL
{