00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
#include <stdlib.h>
00015
#include <string.h>
00016
00017
#include <asterisk/chanvars.h>
00018
#include <asterisk/logger.h>
00019
00020 struct ast_var_t *
ast_var_assign(
char *name,
char *value)
00021 {
00022
int i;
00023
struct ast_var_t *var;
00024
00025 var =
malloc(
sizeof(
struct ast_var_t));
00026
00027
if (var == NULL)
00028 {
00029
ast_log(
LOG_WARNING,
"Out of memory\n");
00030
return NULL;
00031 }
00032
00033 i = strlen(value);
00034 var->value =
malloc(i + 1);
00035
if (var->value == NULL)
00036 {
00037
ast_log(
LOG_WARNING,
"Out of memory\n");
00038
free(var);
00039
return NULL;
00040 }
00041
00042 strncpy(var->value, value, i);
00043 var->value[i] =
'\0';
00044
00045 i = strlen(name);
00046 var->name =
malloc(i + 1);
00047
if (var->name == NULL)
00048 {
00049
ast_log(
LOG_WARNING,
"Out of memory\n");
00050
free(var->value);
00051
free(var);
00052
return NULL;
00053 }
00054
00055 strncpy(var->name, name, i);
00056 var->name[i] =
'\0';
00057
00058
return var;
00059 }
00060
00061 void ast_var_delete(
struct ast_var_t *var)
00062 {
00063
if (var == NULL)
return;
00064
00065
if (var->
name != NULL)
free(var->
name);
00066
if (var->
value != NULL)
free(var->
value);
00067
00068
free(var);
00069 }
00070
00071 char *
ast_var_name(
struct ast_var_t *var)
00072 {
00073
return (var != NULL ? var->
name : NULL);
00074 }
00075
00076 char *
ast_var_value(
struct ast_var_t *var)
00077 {
00078
return (var != NULL ? var->
value : NULL);
00079 }
00080
00081