Asterisk - The Open Source Telephony Project GIT-master-a358458
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 4895 of file extconf.c.

4899{
4900 return ast_add_extension2(con, replace, extension, priority, label, callerid, application, data, datad, registrar);
4901}
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:4773
static int replace(struct ast_channel *chan, const char *cmd, char *data, struct ast_str **buf, ssize_t len)
Definition: func_strings.c:888
static char * registrar
Definition: pbx_ael.c:78
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 2801 of file extconf.c.

2802{
2803 return category_get(config, category_name, 0);
2804}
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:1192

References category_get(), and config.

◆ localized_config_load()

struct ast_config * localized_config_load ( const char *  filename)

Definition at line 3285 of file extconf.c.

3286{
3287 struct ast_config *cfg;
3288 struct ast_config *result;
3289
3290 cfg = ast_config_new();
3291 if (!cfg)
3292 return NULL;
3293
3294 result = ast_config_internal_load(filename, cfg, 0, "");
3295 if (!result)
3296 ast_config_destroy(cfg);
3297
3298 return result;
3299}
static PGresult * result
Definition: cel_pgsql.c:84
static struct ast_config * ast_config_new(void)
Definition: extconf.c:3274
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:2862
static void ast_config_destroy(struct ast_config *cfg)
Definition: extconf.c:1289
#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 3303 of file extconf.c.

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

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 3421 of file extconf.c.

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

4600{
4602}
static int ast_context_add_ignorepat2(struct ast_context *con, const char *value, const char *registrar)
Definition: extconf.c:4567
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 4557 of file extconf.c.

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

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 4700 of file extconf.c.

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

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 5562 of file extconf.c.

5563{
5567}
static int ast_wrlock_contexts(void)
Definition: extconf.c:4609
static void __ast_context_destroy(struct ast_context *con, const char *registrar)
Definition: extconf.c:5501
static int ast_unlock_contexts(void)
Definition: extconf.c:4614

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 4986 of file extconf.c.

4987{
4988 return __ast_context_create(extcontexts, name, registrar, 1);
4989}
static struct ast_context * __ast_context_create(struct ast_context **extcontexts, const char *name, const char *registrar, int existsokay)
Definition: extconf.c:4706
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 5637 of file extconf.c.

5638{
5639 return ast_context_verify_includes(con);
5640}
static int ast_context_verify_includes(struct ast_context *con)
Definition: extconf.c:5620

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 4468 of file extconf.c.

4476{
4477 return pbx_find_extension(NULL, bypass, q, context, exten, priority, label, callerid, action);
4478}
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:4332

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 5615 of file extconf.c.

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

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 2605 of file extconf.c.

2606{
2607 return pbx_builtin_setvar(chan, data);
2608}
static int pbx_builtin_setvar(struct ast_channel *chan, const void *data)
Definition: extconf.c:2568

References pbx_builtin_setvar().

◆ localized_pbx_load_module()

int localized_pbx_load_module ( void  )

Definition at line 5644 of file extconf.c.

5645{
5646 struct ast_context *con;
5647
5649 return -1 /* AST_MODULE_LOAD_DECLINE*/;
5650
5651 /* pbx_load_users(); */ /* does this affect the dialplan? */
5652
5654
5655 for (con = NULL; (con = ast_walk_contexts(con));)
5657
5658 printf("=== Loading extensions.conf ===\n");
5659 con = 0;
5660 while ((con = ast_walk_contexts(con)) ) {
5661 printf("Context: %s\n", con->name);
5662 }
5663 printf("=========\n");
5664
5665 return 0;
5666}
static struct ast_context * ast_walk_contexts(struct ast_context *con)
Definition: extconf.c:4024
static struct ast_context * local_contexts
Definition: extconf.c:3596
static int pbx_load_config(const char *config_file)
Definition: extconf.c:5336
static char * global_registrar
Definition: extconf.c:2121
static char * config_filename
Definition: extconf.c:2120
ast_context: An extension context
Definition: pbx.c:284
const char * name
Definition: pbx.c:285

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 3113 of file extconf.c.

3114{
3115 use_local_dir = 0;
3116}
static int use_local_dir
Definition: extconf.c:3103

References use_local_dir.

Referenced by main().

◆ localized_use_local_dir()

void localized_use_local_dir ( void  )

Definition at line 3108 of file extconf.c.

3109{
3110 use_local_dir = 1;
3111}

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 4051 of file extconf.c.

4053{
4054 return ast_walk_context_extensions(con,exten);
4055}
static struct ast_exten * ast_walk_context_extensions(struct ast_context *con, struct ast_exten *exten)
Definition: extconf.c:4040

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 4104 of file extconf.c.

4106{
4107 return ast_walk_context_includes(con, inc);
4108}
static struct ast_include * ast_walk_context_includes(struct ast_context *con, struct ast_include *inc)
Definition: extconf.c:4080

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 4150 of file extconf.c.

4152{
4153 return ast_walk_context_switches(con, sw);
4154}
static struct ast_sw * ast_walk_context_switches(struct ast_context *con, struct ast_sw *sw)
Definition: extconf.c:4139

References ast_walk_context_switches().

◆ localized_walk_contexts()

struct ast_context * localized_walk_contexts ( struct ast_context con)

Definition at line 4030 of file extconf.c.

4031{
4032 return ast_walk_contexts(con);
4033}

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 4069 of file extconf.c.

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

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