Don't complain that wait4 is unkown and make sure that we won't segfault if chan->cdr is NULL

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Martin Pycko
2003-09-17 04:21:56 +00:00
parent 4e13099add
commit a2894c1114
2 changed files with 37 additions and 36 deletions

View File

@@ -38,6 +38,7 @@
#include <sys/socket.h> #include <sys/socket.h>
#include <sys/un.h> #include <sys/un.h>
#include <sys/select.h> #include <sys/select.h>
#include <sys/wait.h>
#include <string.h> #include <string.h>
#include <errno.h> #include <errno.h>
#include <ctype.h> #include <ctype.h>

8
cdr.c
View File

@@ -351,10 +351,7 @@ int ast_cdr_update(struct ast_channel *c)
char *name, *num; char *name, *num;
char tmp[AST_MAX_EXTENSION] = ""; char tmp[AST_MAX_EXTENSION] = "";
/* Grab source from ANI or normal Caller*ID */ /* Grab source from ANI or normal Caller*ID */
if (!cdr) { if (cdr) {
ast_log(LOG_NOTICE, "The cdr pointer is not set\n");
return -1;
}
if (c->ani) if (c->ani)
strncpy(tmp, c->ani, sizeof(tmp) - 1); strncpy(tmp, c->ani, sizeof(tmp) - 1);
else if (c->callerid && strlen(c->callerid)) else if (c->callerid && strlen(c->callerid))
@@ -375,6 +372,7 @@ int ast_cdr_update(struct ast_channel *c)
/* Destination information */ /* Destination information */
strncpy(cdr->dst, c->exten, sizeof(cdr->dst) - 1); strncpy(cdr->dst, c->exten, sizeof(cdr->dst) - 1);
strncpy(cdr->dcontext, c->context, sizeof(cdr->dcontext) - 1); strncpy(cdr->dcontext, c->context, sizeof(cdr->dcontext) - 1);
}
return 0; return 0;
} }
@@ -421,6 +419,7 @@ void ast_cdr_post(struct ast_cdr *cdr)
void ast_cdr_reset(struct ast_cdr *cdr, int post) void ast_cdr_reset(struct ast_cdr *cdr, int post)
{ {
if (cdr) {
/* Post if requested */ /* Post if requested */
if (post) { if (post) {
ast_cdr_end(cdr); ast_cdr_end(cdr);
@@ -435,4 +434,5 @@ void ast_cdr_reset(struct ast_cdr *cdr, int post)
cdr->duration = 0; cdr->duration = 0;
ast_cdr_start(cdr); ast_cdr_start(cdr);
cdr->disposition = AST_CDR_NOANSWER; cdr->disposition = AST_CDR_NOANSWER;
}
} }