Wed Jan 8 2020 09:50:10

Asterisk developer's documentation


chanvars.c File Reference

Channel Variables. More...

#include "asterisk.h"
#include "asterisk/chanvars.h"
#include "asterisk/strings.h"
#include "asterisk/utils.h"

Go to the source code of this file.

Functions

struct ast_var_tast_var_assign (const char *name, const char *value)
 
void ast_var_delete (struct ast_var_t *var)
 
const char * ast_var_full_name (const struct ast_var_t *var)
 
const char * ast_var_name (const struct ast_var_t *var)
 
const char * ast_var_value (const struct ast_var_t *var)
 

Detailed Description

Channel Variables.

Author
Mark Spencer marks.nosp@m.ter@.nosp@m.digiu.nosp@m.m.co.nosp@m.m

Definition in file chanvars.c.

Function Documentation

struct ast_var_t* ast_var_assign ( const char *  name,
const char *  value 
)

Definition at line 41 of file chanvars.c.

References __ast_calloc(), ast_calloc, ast_copy_string(), ast_var_t::name, ast_var_t::value, and var.

Referenced by acf_iaxvar_write(), ast_cdr_copy_vars(), ast_cdr_setvar(), ast_cel_fabricate_channel_from_event(), ast_channel_inherit_variables(), ast_iax2_new(), authenticate_reply(), clone_variables(), do_say(), dundi_lookup_local(), frame_set_var(), iax2_dup_variable_datastore(), loopback_subst(), pbx_builtin_pushvar_helper(), pbx_builtin_setvar_helper(), shared_write(), and socket_process().

43 {
44  struct ast_var_t *var;
45  int name_len = strlen(name) + 1;
46  int value_len = strlen(value) + 1;
47 
48 #ifdef MALLOC_DEBUG
49  if (!(var = __ast_calloc(sizeof(*var) + name_len + value_len, sizeof(char), file, lineno, function))) {
50 #else
51  if (!(var = ast_calloc(sizeof(*var) + name_len + value_len, sizeof(char)))) {
52 #endif
53  return NULL;
54  }
55 
56  ast_copy_string(var->name, name, name_len);
57  var->value = var->name + name_len;
58  ast_copy_string(var->value, value, value_len);
59 
60  return var;
61 }
#define var
Definition: ast_expr2f.c:606
void * __ast_calloc(size_t nmemb, size_t size, const char *file, int lineno, const char *func)
int value
Definition: syslog.c:39
char * value
Definition: chanvars.h:30
char name[0]
Definition: chanvars.h:31
static const char name[]
#define ast_calloc(a, b)
Definition: astmm.h:82
void ast_copy_string(char *dst, const char *src, size_t size)
Size-limited null-terminating string copy.
Definition: strings.h:223
const char* ast_var_full_name ( const struct ast_var_t var)

Definition at line 84 of file chanvars.c.

References ast_var_t::name.

Referenced by ast_channel_inherit_variables().

85 {
86  return (var ? var->name : NULL);
87 }
char name[0]
Definition: chanvars.h:31
const char* ast_var_name ( const struct ast_var_t var)