Asterisk - The Open Source Telephony Project  21.4.1
Data Structures | Functions
pbx_include.c File Reference

Dialplan context include routines. More...

#include "asterisk.h"
#include "asterisk/_private.h"
#include "asterisk/pbx.h"
#include "pbx_private.h"

Go to the source code of this file.

Data Structures

struct  ast_include
 ast_include: include= support in extensions.conf More...
 

Functions

const char * ast_get_include_name (const struct ast_include *inc)
 
const char * ast_get_include_registrar (const struct ast_include *inc)
 
struct ast_includeinclude_alloc (const char *value, const char *registrar)
 
void include_free (struct ast_include *inc)
 
const char * include_rname (const struct ast_include *inc)
 
int include_valid (const struct ast_include *inc)
 

Detailed Description

Dialplan context include routines.

Author
Corey Farrell git@c.nosp@m.fwar.nosp@m.e.com

Definition in file pbx_include.c.

Function Documentation

struct ast_include* include_alloc ( const char *  value,
const char *  registrar 
)

Allocate and initialize an ast_include.

Definition at line 74 of file pbx_include.c.

References ast_build_timing(), ast_calloc, ast_include::hastime, ast_include::registrar, ast_include::rname, and ast_include::timing.

Referenced by ast_context_add_include2().

75 {
76  struct ast_include *new_include;
77  char *c;
78  int valuebufsz = strlen(value) + 1;
79  char *p;
80 
81  /* allocate new include structure ... */
82  new_include = ast_calloc(1, sizeof(*new_include) + (valuebufsz * 2));
83  if (!new_include) {
84  return NULL;
85  }
86 
87  /* Fill in this structure. Use 'p' for assignments, as the fields
88  * in the structure are 'const char *'
89  */
90  p = new_include->stuff;
91  new_include->name = p;
92  strcpy(p, value);
93  p += valuebufsz;
94  new_include->rname = p;
95  strcpy(p, value);
96  /* Strip off timing info, and process if it is there */
97  if ( (c = strchr(p, '|')) || (c = strchr(p, ',')) ) {
98  *c++ = '\0';
99  new_include->hastime = ast_build_timing(&(new_include->timing), c);
100  }
101  new_include->registrar = registrar;
102 
103  return new_include;
104 }
ast_include: include= support in extensions.conf
Definition: pbx_include.c:37
int ast_build_timing(struct ast_timing *i, const char *info_in)
Construct a timing bitmap, for use in time-based conditionals.
Definition: extconf.c:3806
struct ast_timing timing
Definition: pbx_include.c:46
#define ast_calloc(num, len)
A wrapper for calloc()
Definition: astmm.h:202
const char * rname
Definition: pbx_include.c:40
const char * registrar
Definition: pbx_include.c:42
void include_free ( struct ast_include inc)

Free an ast_include and associated data.

Definition at line 106 of file pbx_include.c.

References ast_destroy_timing(), and ast_include::timing.

Referenced by ast_context_add_include2(), and ast_context_remove_include2().

107 {
108  ast_destroy_timing(&(inc->timing));
109  ast_free(inc);
110 }
struct ast_timing timing
Definition: pbx_include.c:46
int ast_destroy_timing(struct ast_timing *i)
Deallocates memory structures associated with a timing bitmap.
Definition: pbx_timing.c:279