Asterisk - The Open Source Telephony Project GIT-master-0deac78
Data Structures | Macros | Enumerations | Functions
extconf.h File Reference

External configuration handlers (realtime and static configuration) More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  pbx_find_info
 

Macros

#define AST_PBX_MAX_STACK   512
 
#define STATUS_NO_CONTEXT   1
 
#define STATUS_NO_EXTENSION   2
 
#define STATUS_NO_LABEL   4
 
#define STATUS_NO_PRIORITY   3
 
#define STATUS_SUCCESS   5
 

Enumerations

enum  ext_match_t {
  E_MATCHMORE = 0x00 , E_CANMATCH = 0x01 , E_MATCH = 0x02 , E_MATCH_MASK = 0x03 ,
  E_SPAWN = 0x12 , E_FINDLABEL = 0x22 , E_MATCHMORE = 0x00 , E_CANMATCH = 0x01 ,
  E_MATCH = 0x02 , E_MATCH_MASK = 0x03 , E_SPAWN = 0x12 , E_FINDLABEL = 0x22
}
 

Functions

int localized_add_extension2 (struct ast_context *con, int replace, const char *extension, int priority, const char *label, const char *callerid, const char *application, void *data, void(*datad)(void *), const char *registrar)
 
struct ast_categorylocalized_category_get (const struct ast_config *config, const char *category_name)
 
struct ast_configlocalized_config_load (const char *filename)
 
struct ast_configlocalized_config_load_with_comments (const char *filename)
 
int localized_config_text_file_save (const char *configfile, const struct ast_config *cfg, const char *generator)
 
int localized_context_add_ignorepat2 (struct ast_context *con, const char *value, const char *registrar)
 
int localized_context_add_include2 (struct ast_context *con, const char *value, const char *registrar)
 
int localized_context_add_switch2 (struct ast_context *con, const char *value, const char *data, int eval, const char *registrar)
 
void localized_context_destroy (struct ast_context *con, const char *registrar)
 
struct ast_contextlocalized_context_find_or_create (struct ast_context **extcontexts, void *tab, const char *name, const char *registrar)
 
int localized_context_verify_includes (struct ast_context *con)
 
struct ast_extenlocalized_find_extension (struct ast_context *bypass, struct pbx_find_info *q, const char *context, const char *exten, int priority, const char *label, const char *callerid, enum ext_match_t action)
 
void localized_merge_contexts_and_delete (struct ast_context **extcontexts, void *tab, const char *registrar)
 
int localized_pbx_builtin_setvar (struct ast_channel *chan, const void *data)
 
int localized_pbx_load_module (void)
 
void localized_use_conf_dir (void)
 
void localized_use_local_dir (void)
 
struct ast_extenlocalized_walk_context_extensions (struct ast_context *con, struct ast_exten *exten)
 
struct ast_includelocalized_walk_context_includes (struct ast_context *con, struct ast_include *inc)
 
struct ast_swlocalized_walk_context_switches (struct ast_context *con, struct ast_sw *sw)
 
struct ast_contextlocalized_walk_contexts (struct ast_context *con)
 
struct ast_extenlocalized_walk_extension_priorities (struct ast_exten *exten, struct ast_exten *priority)
 

Detailed Description

External configuration handlers (realtime and static configuration)

Author
Steve Murphy murf@.nosp@m.digi.nosp@m.um.co.nosp@m.m

Definition in file extconf.h.

Macro Definition Documentation

◆ AST_PBX_MAX_STACK

#define AST_PBX_MAX_STACK   512

Definition at line 225 of file extconf.h.

◆ STATUS_NO_CONTEXT

#define STATUS_NO_CONTEXT   1

Definition at line 244 of file extconf.h.

◆ STATUS_NO_EXTENSION

#define STATUS_NO_EXTENSION   2

Definition at line 245 of file extconf.h.

◆ STATUS_NO_LABEL

#define STATUS_NO_LABEL   4

Definition at line 247 of file extconf.h.

◆ STATUS_NO_PRIORITY

#define STATUS_NO_PRIORITY   3

Definition at line 246 of file extconf.h.

◆ STATUS_SUCCESS

#define STATUS_SUCCESS   5

Definition at line 248 of file extconf.h.

Enumeration Type Documentation

◆ ext_match_t

When looking up extensions, we can have different requests identified by the 'action' argument, as follows. Note that the coding is such that the low 4 bits are the third argument to extension_match_core.

Enumerator
E_MATCHMORE 
E_CANMATCH 
E_MATCH 
E_MATCH_MASK 
E_SPAWN 
E_FINDLABEL 
E_MATCHMORE 
E_CANMATCH 
E_MATCH 
E_MATCH_MASK 
E_SPAWN 
E_FINDLABEL 

Definition at line 214 of file extconf.h.

214 {
215 E_MATCHMORE = 0x00, /* extension can match but only with more 'digits' */
216 E_CANMATCH = 0x01, /* extension can match with or without more 'digits' */
217 E_MATCH = 0x02, /* extension is an exact match */
218 E_MATCH_MASK = 0x03, /* mask for the argument to extension_match_core() */
219 E_SPAWN = 0x12, /* want to spawn an extension. Requires exact match */
220 E_FINDLABEL = 0x22 /* returns the priority for a given label. Requires exact match */
221};
@ E_MATCH_MASK
Definition: extconf.h:218
@ E_MATCH
Definition: extconf.h:217
@ E_CANMATCH
Definition: extconf.h:216
@ E_FINDLABEL
Definition: extconf.h:220
@ E_MATCHMORE
Definition: extconf.h:215
@ E_SPAWN
Definition: extconf.h:219

Function Documentation

◆ localized_add_extension2()

int localized_add_extension2 ( struct ast_context con,
int  replace,
const char *  extension,
int  priority,
const char *  label,
const char *  callerid,
const char *  application,
void *  data,
void(*)(void *)  datad,
const char *  registrar 
)

Definition at line 4893 of file extconf.c.

4897{
4898 return ast_add_extension2(con, replace, extension, priority, label, callerid, application, data, datad, registrar);
4899}
static int priority
static int ast_add_extension2(struct ast_context *con, int replace, const char *extension, int priority, const char *label, const char *callerid, const char *application, void *data, void(*datad)(void *), const char *registrar)
Main interface to add extensions to the list for out context.
Definition: extconf.c:4771
static int replace(struct ast_channel *chan, const char *cmd, char *data, struct ast_str **buf, ssize_t len)
Definition: func_strings.c:980
static char * registrar
Definition: pbx_ael.c:81
structure to hold extensions

References ast_add_extension2(), ast_exten::data, ast_exten::datad, ast_exten::label, priority, registrar, and replace().

◆ localized_category_get()

struct ast_category * localized_category_get ( const struct ast_config config,
const char *  category_name 
)

Definition at line 2799 of file extconf.c.

2800{
2801 return category_get(config, category_name, 0);
2802}
static const char config[]
Definition: chan_ooh323.c:111
static struct ast_category * category_get(const struct ast_config *config, const char *category_name, int ignored)
Definition: extconf.c:1190

References category_get(), and config.

◆ localized_config_load()

struct ast_config * localized_config_load ( const char *  filename)

Definition at line 3283 of file extconf.c.

3284{
3285 struct ast_config *cfg;
3286 struct ast_config *result;
3287
3288 cfg = ast_config_new();
3289 if (!cfg)
3290 return NULL;
3291
3292 result = ast_config_internal_load(filename, cfg, 0, "");
3293 if (!result)
3294 ast_config_destroy(cfg);
3295
3296 return result;
3297}
static PGresult * result
Definition: cel_pgsql.c:84
static struct ast_config * ast_config_new(void)
Definition: extconf.c:3272
static struct ast_config * ast_config_internal_load(const char *filename, struct ast_config *cfg, int withcomments, const char *suggested_incl_file)
Definition: extconf.c:2860
static void ast_config_destroy(struct ast_config *cfg)
Definition: extconf.c:1287
#define NULL
Definition: resample.c:96

References ast_config_destroy(), ast_config_internal_load(), ast_config_new(), NULL, and result.

Referenced by pbx_load_config().

◆ localized_config_load_with_comments()

struct ast_config * localized_config_load_with_comments ( const char *  filename)

Definition at line 3301 of file extconf.c.

3302{
3303 struct ast_config *cfg;
3304 struct ast_config *result;
3305
3306 cfg = ast_config_new();
3307 if (!cfg)
3308 return NULL;
3309
3310 result = ast_config_internal_load(filename, cfg, 1, "");
3311 if (!result)
3312 ast_config_destroy(cfg);
3313
3314 return result;
3315}

References ast_config_destroy(), ast_config_internal_load(), ast_config_new(), NULL, and result.

◆ localized_config_text_file_save()

int localized_config_text_file_save ( const char *  configfile,
const struct ast_config cfg,
const char *  generator 
)

Definition at line 3419 of file extconf.c.

3420{
3421 FILE *f;
3422 char fn[256];
3423 struct ast_variable *var;
3424 struct ast_category *cat;
3425 struct ast_comment *cmt;
3426 struct ast_config_include *incl;
3427 int blanklines = 0;
3428
3429 /* reset all the output flags, in case this isn't our first time saving this data */
3430
3431 for (incl=cfg->includes; incl; incl = incl->next)
3432 incl->output = 0;
3433
3434 /* go thru all the inclusions and make sure all the files involved (configfile plus all its inclusions)
3435 are all truncated to zero bytes and have that nice header*/
3436
3437 for (incl=cfg->includes; incl; incl = incl->next)
3438 {
3439 if (!incl->exec) { /* leave the execs alone -- we'll write out the #exec directives, but won't zero out the include files or exec files*/
3440 FILE *f1;
3441
3442 set_fn(fn, sizeof(fn), incl->included_file, configfile); /* normally, fn is just set to incl->included_file, prepended with config dir if relative */
3443 f1 = fopen(fn,"w");
3444 if (f1) {
3445 gen_header(f1, configfile, fn, generator);
3446 fclose(f1); /* this should zero out the file */
3447 } else {
3448 ast_verbose(VERBOSE_PREFIX_2 "Unable to write %s (%s)", fn, strerror(errno));
3449 }
3450 }
3451 }
3452
3453 set_fn(fn, sizeof(fn), 0, configfile); /* just set fn to absolute ver of configfile */
3454#ifdef __CYGWIN__
3455 if ((f = fopen(fn, "w+"))) {
3456#else
3457 if ((f = fopen(fn, "w"))) {
3458#endif
3459 if (option_verbose > 1)
3460 ast_verbose(VERBOSE_PREFIX_2 "Saving '%s': ", fn);
3461
3462 gen_header(f, configfile, fn, generator);
3463 cat = cfg->root;
3464 fclose(f);
3465
3466 /* from here out, we open each involved file and concat the stuff we need to add to the end and immediately close... */
3467 /* since each var, cat, and associated comments can come from any file, we have to be
3468 mobile, and open each file, print, and close it on an entry-by-entry basis */
3469
3470 while(cat) {
3471 set_fn(fn, sizeof(fn), cat->file, configfile);
3472 f = fopen(fn, "a");
3473 if (!f)
3474 {
3475 ast_verbose(VERBOSE_PREFIX_2 "Unable to write %s (%s)", fn, strerror(errno));
3476 return -1;
3477 }
3478
3479 /* dump any includes that happen before this category header */
3480 for (incl=cfg->includes; incl; incl = incl->next) {
3481 if (strcmp(incl->include_location_file, cat->file) == 0){
3482 if (cat->lineno > incl->include_location_lineno && !incl->output) {
3483 if (incl->exec)
3484 fprintf(f,"#exec \"%s\"\n", incl->exec_file);
3485 else
3486 fprintf(f,"#include \"%s\"\n", incl->included_file);
3487 incl->output = 1;
3488 }
3489 }
3490 }
3491
3492 /* Dump section with any appropriate comment */
3493 for (cmt = cat->precomments; cmt; cmt=cmt->next) {
3494 if (cmt->cmt[0] != ';' || cmt->cmt[1] != '!')
3495 fprintf(f,"%s", cmt->cmt);
3496 }
3497 if (!cat->precomments)
3498 fprintf(f,"\n");
3499 fprintf(f, "[%s]", cat->name);
3500 for(cmt = cat->sameline; cmt; cmt=cmt->next) {
3501 fprintf(f,"%s", cmt->cmt);
3502 }
3503 if (!cat->sameline)
3504 fprintf(f,"\n");
3505 fclose(f);
3506
3507 var = cat->root;
3508 while(var) {
3509 set_fn(fn, sizeof(fn), var->file, configfile);
3510 f = fopen(fn, "a");
3511 if (!f)
3512 {
3513 ast_verbose(VERBOSE_PREFIX_2 "Unable to write %s (%s)", fn, strerror(errno));
3514 return -1;
3515 }
3516
3517 /* dump any includes that happen before this category header */
3518 for (incl=cfg->includes; incl; incl = incl->next) {
3519 if (strcmp(incl->include_location_file, var->file) == 0){
3520 if (var->lineno > incl->include_location_lineno && !incl->output) {
3521 if (incl->exec)
3522 fprintf(f,"#exec \"%s\"\n", incl->exec_file);
3523 else
3524 fprintf(f,"#include \"%s\"\n", incl->included_file);
3525 incl->output = 1;
3526 }
3527 }
3528 }
3529
3530 for (cmt = var->precomments; cmt; cmt=cmt->next) {
3531 if (cmt->cmt[0] != ';' || cmt->cmt[1] != '!')
3532 fprintf(f,"%s", cmt->cmt);
3533 }
3534 if (var->sameline)
3535 fprintf(f, "%s %s %s %s", var->name, (var->object ? "=>" : "="), var->value, var->sameline->cmt);
3536 else
3537 fprintf(f, "%s %s %s\n", var->name, (var->object ? "=>" : "="), var->value);
3538 if (var->blanklines) {
3539 blanklines = var->blanklines;
3540 while (blanklines--)
3541 fprintf(f, "\n");
3542 }
3543
3544 fclose(f);
3545
3546
3547 var = var->next;
3548 }
3549 cat = cat->next;
3550 }
3551 if ((option_verbose > 1) && !option_debug)
3552 ast_verbose("Saved\n");
3553 } else {
3554 if (option_debug)
3555 ast_log(LOG_DEBUG, "Unable to open for writing: %s\n", fn);
3556 if (option_verbose > 1)
3557 ast_verbose(VERBOSE_PREFIX_2 "Unable to write (%s)", strerror(errno));
3558 return -1;
3559 }
3560
3561 /* Now, for files with trailing #include/#exec statements,
3562 we have to make sure every entry is output */
3563
3564 for (incl=cfg->includes; incl; incl = incl->next) {
3565 if (!incl->output) {
3566 /* open the respective file */
3567 set_fn(fn, sizeof(fn), incl->include_location_file, configfile);
3568 f = fopen(fn, "a");
3569 if (!f)
3570 {
3571 ast_verbose(VERBOSE_PREFIX_2 "Unable to write %s (%s)", fn, strerror(errno));
3572 return -1;
3573 }
3574
3575 /* output the respective include */
3576 if (incl->exec)
3577 fprintf(f,"#exec \"%s\"\n", incl->exec_file);
3578 else
3579 fprintf(f,"#include \"%s\"\n", incl->included_file);
3580 fclose(f);
3581 incl->output = 1;
3582 }
3583 }
3584
3585 return 0;
3586}
#define var
Definition: ast_expr2f.c:605
#define VERBOSE_PREFIX_2
Definition: extconf.c:101
#define LOG_DEBUG
Definition: extconf.c:121
void ast_verbose(const char *fmt,...)
Definition: extconf.c:2204
static void gen_header(FILE *f1, const char *configfile, const char *fn, const char *generator)
Definition: extconf.c:3386
static void set_fn(char *fn, int fn_size, const char *file, const char *configfile)
Definition: extconf.c:3404
static void ast_log(int level, const char *file, int line, const char *function, const char *fmt,...)
Definition: extconf.c:2192
int option_debug
Definition: options.c:70
int option_verbose
Definition: options.c:68
int errno
struct ast_comment * precomments
Definition: main/config.c:237
char name[80]
Definition: main/config.c:227
struct ast_category * next
Definition: main/config.c:247
struct ast_variable * root
Definition: main/config.c:241
struct ast_comment * sameline
Definition: main/config.c:238
char * file
The file name from whence this declaration was read.
Definition: main/config.c:234
Structure to keep comments for rewriting configuration files.
Definition: main/config.c:85
char cmt[0]
Definition: main/config.c:88
struct ast_comment * next
Definition: main/config.c:86
char * include_location_file
file name in which the include occurs
Definition: main/config.c:288
char * exec_file
if it's an exec, you'll have both the /var/tmp to read, and the original script
Definition: main/config.c:295
char * included_file
file name included
Definition: main/config.c:300
struct ast_config_include * next
Definition: main/config.c:308
struct ast_config_include * includes
Definition: extconf.c:916
struct ast_category * root
Definition: main/config.c:252
Structure for variables, used for configurations and for channel variables.

References ast_log(), ast_verbose(), ast_comment::cmt, errno, ast_config_include::exec, ast_config_include::exec_file, ast_category::file, gen_header(), ast_config_include::include_location_file, ast_config_include::include_location_lineno, ast_config_include::included_file, ast_config::includes, ast_category::lineno, LOG_DEBUG, ast_category::name, ast_comment::next, ast_category::next, ast_config_include::next, option_debug, option_verbose, ast_config_include::output, ast_category::precomments, ast_category::root, ast_config::root, ast_category::sameline, set_fn(), var, and VERBOSE_PREFIX_2.

◆ localized_context_add_ignorepat2()

int localized_context_add_ignorepat2 ( struct ast_context con,
const char *  value,
const char *  registrar 
)

Definition at line 4597 of file extconf.c.

4598{
4600}
static int ast_context_add_ignorepat2(struct ast_context *con, const char *value, const char *registrar)
Definition: extconf.c:4565
int value
Definition: syslog.c:37

References ast_context_add_ignorepat2(), registrar, and value.

◆ localized_context_add_include2()

int localized_context_add_include2 ( struct ast_context con,
const char *  value,
const char *  registrar 
)

Definition at line 4555 of file extconf.c.

4557{
4559}
static int ast_context_add_include2(struct ast_context *con, const char *value, const char *registrar)
Definition: extconf.c:4499

References ast_context_add_include2(), registrar, and value.

◆ localized_context_add_switch2()

int localized_context_add_switch2 ( struct ast_context con,
const char *  value,
const char *  data,
int  eval,
const char *  registrar 
)

Definition at line 4698 of file extconf.c.

4700{
4701 return ast_context_add_switch2(con, value, data, eval, registrar);
4702}
static int ast_context_add_switch2(struct ast_context *con, const char *value, const char *data, int eval, const char *registrar)
Definition: extconf.c:4637

References ast_context_add_switch2(), ast_sw::data, ast_sw::eval, registrar, and value.

◆ localized_context_destroy()

void localized_context_destroy ( struct ast_context con,
const char *  registrar 
)

Definition at line 5560 of file extconf.c.

5561{
5565}
static int ast_wrlock_contexts(void)
Definition: extconf.c:4607
static void __ast_context_destroy(struct ast_context *con, const char *registrar)
Definition: extconf.c:5499
static int ast_unlock_contexts(void)
Definition: extconf.c:4612

References __ast_context_destroy(), ast_unlock_contexts(), ast_wrlock_contexts(), and registrar.

◆ localized_context_find_or_create()

struct ast_context * localized_context_find_or_create ( struct ast_context **  extcontexts,
void *  tab,
const char *  name,
const char *  registrar 
)
Version
1.6.1 added tab parameter
1.6.1 renamed function from localized_context_create to localized_context_find_or_create

Definition at line 4984 of file extconf.c.

4985{
4986 return __ast_context_create(extcontexts, name, registrar, 1);
4987}
static struct ast_context * __ast_context_create(struct ast_context **extcontexts, const char *name, const char *registrar, int existsokay)
Definition: extconf.c:4704
static const char name[]
Definition: format_mp3.c:68

References __ast_context_create(), name, and registrar.

◆ localized_context_verify_includes()

int localized_context_verify_includes ( struct ast_context con)

Definition at line 5635 of file extconf.c.

5636{
5637 return ast_context_verify_includes(con);
5638}
static int ast_context_verify_includes(struct ast_context *con)
Definition: extconf.c:5618

References ast_context_verify_includes().

◆ localized_find_extension()

struct ast_exten * localized_find_extension ( struct ast_context bypass,
struct pbx_find_info q,
const char *  context,
const char *  exten,
int  priority,
const char *  label,
const char *  callerid,
enum ext_match_t  action 
)

Definition at line 4466 of file extconf.c.

4474{
4475 return pbx_find_extension(NULL, bypass, q, context, exten, priority, label, callerid, action);
4476}
static struct ast_exten * pbx_find_extension(struct ast_channel *chan, struct ast_context *bypass, struct pbx_find_info *q, const char *context, const char *exten, int priority, const char *label, const char *callerid, enum ext_match_t action)
Definition: extconf.c:4330

References voicemailpwcheck::context, ast_exten::exten, ast_exten::label, NULL, pbx_find_extension(), and priority.

Referenced by pbx_find_extension().

◆ localized_merge_contexts_and_delete()

void localized_merge_contexts_and_delete ( struct ast_context **  extcontexts,
void *  tab,
const char *  registrar 
)
Version
1.6.1 added tab parameter

Definition at line 5613 of file extconf.c.

5614{
5616}
static void ast_merge_contexts_and_delete(struct ast_context **extcontexts, const char *registrar)
Definition: extconf.c:5568

References ast_merge_contexts_and_delete(), and registrar.

◆ localized_pbx_builtin_setvar()

int localized_pbx_builtin_setvar ( struct ast_channel chan,
const void *  data 
)

Definition at line 2603 of file extconf.c.

2604{
2605 return pbx_builtin_setvar(chan, data);
2606}
static int pbx_builtin_setvar(struct ast_channel *chan, const void *data)
Definition: extconf.c:2566

References pbx_builtin_setvar().

◆ localized_pbx_load_module()

int localized_pbx_load_module ( void  )

Definition at line 5642 of file extconf.c.

5643{
5644 struct ast_context *con;
5645
5647 return -1 /* AST_MODULE_LOAD_DECLINE*/;
5648
5649 /* pbx_load_users(); */ /* does this affect the dialplan? */
5650
5652
5653 for (con = NULL; (con = ast_walk_contexts(con));)
5655
5656 printf("=== Loading extensions.conf ===\n");
5657 con = 0;
5658 while ((con = ast_walk_contexts(con)) ) {
5659 printf("Context: %s\n", con->name);
5660 }
5661 printf("=========\n");
5662
5663 return 0;
5664}
static struct ast_context * ast_walk_contexts(struct ast_context *con)
Definition: extconf.c:4022
static struct ast_context * local_contexts
Definition: extconf.c:3594
static int pbx_load_config(const char *config_file)
Definition: extconf.c:5334
static char * global_registrar
Definition: extconf.c:2119
static char * config_filename
Definition: extconf.c:2118
ast_context: An extension context
Definition: pbx.c:299
const char * name
Definition: pbx.c:300

References ast_context_verify_includes(), ast_merge_contexts_and_delete(), ast_walk_contexts(), config_filename, global_registrar, local_contexts, ast_context::name, NULL, and pbx_load_config().

◆ localized_use_conf_dir()

void localized_use_conf_dir ( void  )

Definition at line 3111 of file extconf.c.

3112{
3113 use_local_dir = 0;
3114}
static int use_local_dir
Definition: extconf.c:3101

References use_local_dir.

Referenced by main().

◆ localized_use_local_dir()

void localized_use_local_dir ( void  )

Definition at line 3106 of file extconf.c.

3107{
3108 use_local_dir = 1;
3109}

References use_local_dir.

Referenced by main().

◆ localized_walk_context_extensions()

struct ast_exten * localized_walk_context_extensions ( struct ast_context con,
struct ast_exten exten 
)

Definition at line 4049 of file extconf.c.

4051{
4052 return ast_walk_context_extensions(con,exten);
4053}
static struct ast_exten * ast_walk_context_extensions(struct ast_context *con, struct ast_exten *exten)
Definition: extconf.c:4038

References ast_walk_context_extensions(), and ast_exten::exten.

◆ localized_walk_context_includes()

struct ast_include * localized_walk_context_includes ( struct ast_context con,
struct ast_include inc 
)

Definition at line 4102 of file extconf.c.

4104{
4105 return ast_walk_context_includes(con, inc);
4106}
static struct ast_include * ast_walk_context_includes(struct ast_context *con, struct ast_include *inc)
Definition: extconf.c:4078

References ast_walk_context_includes().

◆ localized_walk_context_switches()

struct ast_sw * localized_walk_context_switches ( struct ast_context con,
struct ast_sw sw 
)

Definition at line 4148 of file extconf.c.

4150{
4151 return ast_walk_context_switches(con, sw);
4152}
static struct ast_sw * ast_walk_context_switches(struct ast_context *con, struct ast_sw *sw)
Definition: extconf.c:4137

References ast_walk_context_switches().

◆ localized_walk_contexts()

struct ast_context * localized_walk_contexts ( struct ast_context con)

Definition at line 4028 of file extconf.c.

4029{
4030 return ast_walk_contexts(con);
4031}

References ast_walk_contexts().

◆ localized_walk_extension_priorities()

struct ast_exten * localized_walk_extension_priorities ( struct ast_exten exten,
struct ast_exten priority 
)

Definition at line 4067 of file extconf.c.

4069{
4071}
static struct ast_exten * ast_walk_extension_priorities(struct ast_exten *exten, struct ast_exten *priority)
Definition: extconf.c:4059

References ast_walk_extension_priorities(), ast_exten::exten, and priority.