Compare commits

..

3 Commits

Author SHA1 Message Date
Kevin P. Fleming
ddecac9b8b Convert all release tags to Opsound music-on-hold.
For more details:
http://blogs.digium.com/2009/08/18/asterisk-music-on-hold-changes/



git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.24@212958 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2009-08-18 20:42:51 +00:00
Russell Bryant
bf0e4f79e1 importing files for 1.2.24 release
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.24@78453 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 19:56:04 +00:00
Russell Bryant
07430c7987 Creating tag for the release of asterisk-1.2.24
git-svn-id: https://origsvn.digium.com/svn/asterisk/tags/1.2.24@78452 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-08-07 19:54:53 +00:00
4 changed files with 13 additions and 31 deletions

View File

@@ -1 +1 @@
1.2.25
1.2.24

View File

@@ -1,16 +1,3 @@
2007-11-29 Russell Bryant <russell@digium.com>
* Asterisk 1.2.25 released
2007-11-29 21:10 +0000 [r90170] Tilghman Lesher <tlesher@digium.com>
* cdr/cdr_pgsql.c: Properly escape src and dst fields (Fixes
AST-2007-026)
2007-09-13 18:10 +0000 [r82334] Kevin P. Fleming <kpfleming@digium.com>
* LICENSE: clarify the OpenSSL and OpenH323 license exceptions
2007-08-07 Russell Bryant <russell@digium.com>
* Asterisk 1.2.24 released

View File

@@ -32,7 +32,7 @@ GPL'd products (although if you've written a module for Asterisk we
would strongly encourage you to make the same exception that we do).
Specific permission is also granted to link Asterisk with OpenSSL and
OpenH323 and distribute the resulting binary files.
OpenH323.
In addition, Asterisk implements two management/control protocols: the
Asterisk Manager Interface (AMI) and the Asterisk Gateway Interface

View File

@@ -72,7 +72,6 @@ static int pgsql_log(struct ast_cdr *cdr)
struct tm tm;
char sqlcmd[2048] = "", timestr[128];
char *pgerror;
int pgerr;
ast_mutex_lock(&pgsql_lock);
@@ -92,32 +91,28 @@ static int pgsql_log(struct ast_cdr *cdr)
if (connected) {
char *clid=NULL, *dcontext=NULL, *channel=NULL, *dstchannel=NULL, *lastapp=NULL, *lastdata=NULL;
char *uniqueid=NULL, *userfield=NULL, *src=NULL, *dst=NULL;
char *uniqueid=NULL, *userfield=NULL;
/* Maximum space needed would be if all characters needed to be escaped, plus a trailing NULL */
if ((clid = alloca(strlen(cdr->clid) * 2 + 1)) != NULL)
PQescapeStringConn(conn, clid, cdr->clid, strlen(cdr->clid), &pgerr);
PQescapeString(clid, cdr->clid, strlen(cdr->clid));
if ((dcontext = alloca(strlen(cdr->dcontext) * 2 + 1)) != NULL)
PQescapeStringConn(conn, dcontext, cdr->dcontext, strlen(cdr->dcontext), &pgerr);
PQescapeString(dcontext, cdr->dcontext, strlen(cdr->dcontext));
if ((channel = alloca(strlen(cdr->channel) * 2 + 1)) != NULL)
PQescapeStringConn(conn, channel, cdr->channel, strlen(cdr->channel), &pgerr);
PQescapeString(channel, cdr->channel, strlen(cdr->channel));
if ((dstchannel = alloca(strlen(cdr->dstchannel) * 2 + 1)) != NULL)
PQescapeStringConn(conn, dstchannel, cdr->dstchannel, strlen(cdr->dstchannel), &pgerr);
PQescapeString(dstchannel, cdr->dstchannel, strlen(cdr->dstchannel));
if ((lastapp = alloca(strlen(cdr->lastapp) * 2 + 1)) != NULL)
PQescapeStringConn(conn, lastapp, cdr->lastapp, strlen(cdr->lastapp), &pgerr);
PQescapeString(lastapp, cdr->lastapp, strlen(cdr->lastapp));
if ((lastdata = alloca(strlen(cdr->lastdata) * 2 + 1)) != NULL)
PQescapeStringConn(conn, lastdata, cdr->lastdata, strlen(cdr->lastdata), &pgerr);
PQescapeString(lastdata, cdr->lastdata, strlen(cdr->lastdata));
if ((uniqueid = alloca(strlen(cdr->uniqueid) * 2 + 1)) != NULL)
PQescapeStringConn(conn, uniqueid, cdr->uniqueid, strlen(cdr->uniqueid), &pgerr);
PQescapeString(uniqueid, cdr->uniqueid, strlen(cdr->uniqueid));
if ((userfield = alloca(strlen(cdr->userfield) * 2 + 1)) != NULL)
PQescapeStringConn(conn, userfield, cdr->userfield, strlen(cdr->userfield), &pgerr);
if ((src = alloca(strlen(cdr->src) * 2 + 1)) != NULL)
PQescapeStringConn(conn, src, cdr->src, strlen(cdr->src), &pgerr);
if ((dst = alloca(strlen(cdr->dst) * 2 + 1)) != NULL)
PQescapeStringConn(conn, dst, cdr->dst, strlen(cdr->dst), &pgerr);
PQescapeString(userfield, cdr->userfield, strlen(cdr->userfield));
/* Check for all alloca failures above at once */
if ((!clid) || (!dcontext) || (!channel) || (!dstchannel) || (!lastapp) || (!lastdata) || (!uniqueid) || (!userfield) || (!src) || (!dst)) {
if ((!clid) || (!dcontext) || (!channel) || (!dstchannel) || (!lastapp) || (!lastdata) || (!uniqueid) || (!userfield)) {
ast_log(LOG_ERROR, "cdr_pgsql: Out of memory error (insert fails)\n");
ast_mutex_unlock(&pgsql_lock);
return -1;
@@ -128,7 +123,7 @@ static int pgsql_log(struct ast_cdr *cdr)
snprintf(sqlcmd,sizeof(sqlcmd),"INSERT INTO %s (calldate,clid,src,dst,dcontext,channel,dstchannel,"
"lastapp,lastdata,duration,billsec,disposition,amaflags,accountcode,uniqueid,userfield) VALUES"
" ('%s','%s','%s','%s','%s', '%s','%s','%s','%s',%ld,%ld,'%s',%ld,'%s','%s','%s')",
table, timestr, clid, src, dst, dcontext,channel, dstchannel, lastapp, lastdata,
table,timestr,clid,cdr->src, cdr->dst, dcontext,channel, dstchannel, lastapp, lastdata,
cdr->duration,cdr->billsec,ast_cdr_disp2str(cdr->disposition),cdr->amaflags, cdr->accountcode, uniqueid, userfield);
ast_log(LOG_DEBUG,"cdr_pgsql: SQL command executed: %s\n",sqlcmd);