aboutsummaryrefslogtreecommitdiffstats
path: root/chanvars.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2002-10-22 15:31:47 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2002-10-22 15:31:47 +0000
commit8e69d5d172a93ecd4051e6ca504cea0a7fe1cab3 (patch)
tree5c88a6fcedc2c50be79e22d06ee1fc5d61b607f0 /chanvars.c
parentf84fd20f0f307b388a22ec7be9f054224745b548 (diff)
Version 0.3.0 from FTP
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@539 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'chanvars.c')
-rwxr-xr-xchanvars.c88
1 files changed, 65 insertions, 23 deletions
diff --git a/chanvars.c b/chanvars.c
index 70324b161..6f8e8475e 100755
--- a/chanvars.c
+++ b/chanvars.c
@@ -1,39 +1,81 @@
-#include <asterisk/chanvars.h>
+/*
+ * Asterisk -- A telephony toolkit for Linux.
+ *
+ * Channel Variables
+ *
+ * Copyright (C) 2002, Mark Spencer
+ *
+ * Mark Spencer <markster@linux-support.net>
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License
+ */
+
#include <malloc.h>
#include <string.h>
-struct ast_var_t *ast_var_assign(char *name,char *value) {
+#include <asterisk/chanvars.h>
+#include <asterisk/logger.h>
+
+struct ast_var_t *ast_var_assign(char *name, char *value)
+{
int i;
struct ast_var_t *var;
- var=malloc(sizeof(struct ast_var_t));
-
- i=strlen(value);
- var->value=malloc(i+1);
- strncpy(var->value,value,i);
- var->value[i]='\0';
+ var = malloc(sizeof(struct ast_var_t));
+
+ if (var == NULL)
+ {
+ ast_log(LOG_WARNING, "Out of memory\n");
+ return NULL;
+ }
- i=strlen(name);
- var->name=malloc(i+1);
- strncpy(var->name,name,i);
- var->name[i]='\0';
- return(var);
-}
+ i = strlen(value);
+ var->value = malloc(i + 1);
+ if (var->value == NULL)
+ {
+ ast_log(LOG_WARNING, "Out of memory\n");
+ free(var);
+ return NULL;
+ }
+
+ strncpy(var->value, value, i);
+ var->value[i] = '\0';
-void ast_var_delete(struct ast_var_t *var) {
- if (var!=NULL) {
- if (var->name!=NULL) free(var->name);
- if (var->value!=NULL) free(var->value);
+ i = strlen(name);
+ var->name = malloc(i + 1);
+ if (var->name == NULL)
+ {
+ ast_log(LOG_WARNING, "Out of memory\n");
+ free(var->value);
free(var);
+ return NULL;
}
+
+ strncpy(var->name, name, i);
+ var->name[i] = '\0';
+
+ return var;
+}
+
+void ast_var_delete(struct ast_var_t *var)
+{
+ if (var == NULL) return;
+
+ if (var->name != NULL) free(var->name);
+ if (var->value != NULL) free(var->value);
+
+ free(var);
}
-char *ast_var_name(struct ast_var_t *var) {
- return(var->name);
+char *ast_var_name(struct ast_var_t *var)
+{
+ return (var != NULL ? var->name : NULL);
}
-char *ast_var_value(struct ast_var_t *var) {
- return(var->value);
+char *ast_var_value(struct ast_var_t *var)
+{
+ return (var != NULL ? var->value : NULL);
}
- \ No newline at end of file
+