});
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 */
{
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)
{
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);
{
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);
}
{
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);
}
{
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);
}
{
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);
}
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]);
}
#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); \
}
#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); \
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;
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;
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 */
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
}
}
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
{