[asterisk-commits] branch murf/AEL2 - r8416 in /team/murf/AEL2: ./
apps/ channels/ codecs/ codec...
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Sat Jan 21 18:25:21 MST 2006
Author: murf
Date: Sat Jan 21 19:24:51 2006
New Revision: 8416
URL: http://svn.digium.com/view/asterisk?rev=8416&view=rev
Log:
Merged revisions 8336,8338,8345-8346,8348,8356-8357,8359-8362,8368,8370-8372,8378-8381,8387,8393,8401-8404,8407-8411,8413 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r8336 | oej | 2006-01-20 07:32:30 -0700 (Fri, 20 Jan 2006) | 4 lines
- Add DOC file about caller ID presentation values
- Add callingpres to sip.conf
- Add reference to README.callingpres from zapata.conf
................
r8338 | kpfleming | 2006-01-20 10:27:51 -0700 (Fri, 20 Jan 2006) | 2 lines
eliminate compiler warnings from recent const-ification
................
r8345 | mattf | 2006-01-20 11:17:46 -0700 (Fri, 20 Jan 2006) | 2 lines
Update config. Apprently default doesn't always work now.
................
r8346 | mattf | 2006-01-20 11:18:40 -0700 (Fri, 20 Jan 2006) | 2 lines
Change chan_alsa to default open the first sound card device
................
r8348 | russell | 2006-01-20 11:40:24 -0700 (Fri, 20 Jan 2006) | 10 lines
Merged revisions 8347 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2
........
r8347 | russell | 2006-01-20 13:34:42 -0500 (Fri, 20 Jan 2006) | 2 lines
fix invalid value of prev_q (issue #6302)
........
................
r8356 | russell | 2006-01-20 12:24:42 -0700 (Fri, 20 Jan 2006) | 11 lines
- move ast_strdupa from channel.h to utils.h
- attempt to log an error message if the __builtin_alloca inside of ast_strdupa
fails.
- document the fact that it is known and intended behavior for ast_strdupa to
cause Asterisk to crash if the alloca fails
- use __builtin_expect when checking for allocation failure in all of the
allocation wrappers
New Janitor Project! Anywhere that we check for a successful allocation after
a call to ast_strdupa is unnecessary and should be removed.
................
r8357 | mattf | 2006-01-20 14:36:33 -0700 (Fri, 20 Jan 2006) | 2 lines
Fix for formats so they give better output on failure conditions. (#6141)
................
r8359 | mattf | 2006-01-20 16:19:49 -0700 (Fri, 20 Jan 2006) | 2 lines
Fix comments in sip.conf (#6134)
................
r8360 | russell | 2006-01-20 16:23:00 -0700 (Fri, 20 Jan 2006) | 2 lines
formatting and doxygen fixes (issue #6300)
................
r8361 | mattf | 2006-01-20 16:28:37 -0700 (Fri, 20 Jan 2006) | 2 lines
fix for codec_gsm on ia64 (#6294)
................
r8362 | russell | 2006-01-20 17:42:25 -0700 (Fri, 20 Jan 2006) | 2 lines
remove some useless checks after calls to ast_strdupa
................
r8368 | russell | 2006-01-20 20:09:01 -0700 (Fri, 20 Jan 2006) | 2 lines
remove optimization where its benefits are negligible
................
r8370 | tilghman | 2006-01-20 22:05:45 -0700 (Fri, 20 Jan 2006) | 2 lines
Bug 6096 - callerid_parse cleanup
................
r8371 | tilghman | 2006-01-20 22:15:56 -0700 (Fri, 20 Jan 2006) | 2 lines
Bug 5515 - Devicestate and API documentation update
................
r8372 | tilghman | 2006-01-20 22:22:18 -0700 (Fri, 20 Jan 2006) | 2 lines
Bug 4872 - Make Asterisk paths available to AGIs via environmental variables
................
r8378 | russell | 2006-01-21 01:01:24 -0700 (Sat, 21 Jan 2006) | 2 lines
remove some useless checks of the result of ast_strdupa
................
r8379 | russell | 2006-01-21 01:13:12 -0700 (Sat, 21 Jan 2006) | 2 lines
remove lots of useless checks of the result of ast_strdupa
................
r8380 | russell | 2006-01-21 01:23:57 -0700 (Sat, 21 Jan 2006) | 2 lines
remove useless checks of the result of ast_strdupa
................
r8381 | russell | 2006-01-21 01:45:39 -0700 (Sat, 21 Jan 2006) | 2 lines
conversions to use allocation wrappers (issue #6277)
................
r8387 | russell | 2006-01-21 10:50:04 -0700 (Sat, 21 Jan 2006) | 3 lines
revert my pass through the tree to remove checks of the result of ast_strdupa
(revisions 8378 through 8381)
................
r8393 | russell | 2006-01-21 11:11:40 -0700 (Sat, 21 Jan 2006) | 3 lines
don't do the memcpy inside of ast_strdupa if we know that __builtin_alloca
was not successful
................
r8401 | russell | 2006-01-21 13:20:06 -0700 (Sat, 21 Jan 2006) | 3 lines
finish reverting my pass through the tree to remove checks of the result of
ast_strdupa, this one is revision 8362
................
r8402 | tilghman | 2006-01-21 13:32:17 -0700 (Sat, 21 Jan 2006) | 2 lines
Bug 5936 - Cannot AddQueueMember on realtime queue, if queue not yet loaded (different fix than 1.2)
................
r8403 | russell | 2006-01-21 13:57:06 -0700 (Sat, 21 Jan 2006) | 2 lines
on this pass, only remove duplicate log messages
................
r8404 | russell | 2006-01-21 13:58:57 -0700 (Sat, 21 Jan 2006) | 1 line
................
r8407 | russell | 2006-01-21 14:29:06 -0700 (Sat, 21 Jan 2006) | 2 lines
clean up formatting to conform to coding guidelines and fix some typos (issue #6260)
................
r8408 | russell | 2006-01-21 14:50:09 -0700 (Sat, 21 Jan 2006) | 5 lines
- conversion to allocation wrappers
- get rid of some compiler warnings due to usused variables and const-ification
- remove some unnecessary uses of malloc/strncpy/free and replace with ast_strdupa
(based on the patch from issue #6275)
................
r8409 | russell | 2006-01-21 14:57:01 -0700 (Sat, 21 Jan 2006) | 2 lines
oops, don't build app_sql_postgres by default ...
................
r8410 | russell | 2006-01-21 15:09:06 -0700 (Sat, 21 Jan 2006) | 5 lines
- conversions to allocation wrappers
- replace malloc/memset with ast_calloc
- replace malloc/ast_copy_string with ast_strdup
(based on patch from issue #6299)
................
r8411 | russell | 2006-01-21 16:05:19 -0700 (Sat, 21 Jan 2006) | 2 lines
const-ify some fields in the ast_exten and ast_include structures (issue #6270)
................
r8413 | russell | 2006-01-21 16:17:52 -0700 (Sat, 21 Jan 2006) | 1 line
................
Added:
team/murf/AEL2/doc/README.callingpres
- copied unchanged from r8413, trunk/doc/README.callingpres
Modified:
team/murf/AEL2/ (props changed)
team/murf/AEL2/apps/Makefile
team/murf/AEL2/apps/app_authenticate.c
team/murf/AEL2/apps/app_chanspy.c
team/murf/AEL2/apps/app_curl.c
team/murf/AEL2/apps/app_db.c
team/murf/AEL2/apps/app_dial.c
team/murf/AEL2/apps/app_dictate.c
team/murf/AEL2/apps/app_directory.c
team/murf/AEL2/apps/app_disa.c
team/murf/AEL2/apps/app_exec.c
team/murf/AEL2/apps/app_externalivr.c
team/murf/AEL2/apps/app_festival.c
team/murf/AEL2/apps/app_hasnewvoicemail.c
team/murf/AEL2/apps/app_image.c
team/murf/AEL2/apps/app_macro.c
team/murf/AEL2/apps/app_meetme.c
team/murf/AEL2/apps/app_mixmonitor.c
team/murf/AEL2/apps/app_osplookup.c
team/murf/AEL2/apps/app_page.c
team/murf/AEL2/apps/app_playback.c
team/murf/AEL2/apps/app_privacy.c
team/murf/AEL2/apps/app_queue.c
team/murf/AEL2/apps/app_random.c
team/murf/AEL2/apps/app_read.c
team/murf/AEL2/apps/app_readfile.c
team/murf/AEL2/apps/app_record.c
team/murf/AEL2/apps/app_sayunixtime.c
team/murf/AEL2/apps/app_senddtmf.c
team/murf/AEL2/apps/app_sendtext.c
team/murf/AEL2/apps/app_setcallerid.c
team/murf/AEL2/apps/app_skel.c
team/murf/AEL2/apps/app_sql_postgres.c
team/murf/AEL2/apps/app_stack.c
team/murf/AEL2/apps/app_talkdetect.c
team/murf/AEL2/apps/app_transfer.c
team/murf/AEL2/apps/app_url.c
team/murf/AEL2/apps/app_userevent.c
team/murf/AEL2/apps/app_verbose.c
team/murf/AEL2/apps/app_voicemail.c
team/murf/AEL2/apps/app_while.c
team/murf/AEL2/apps/app_zapras.c
team/murf/AEL2/callerid.c
team/murf/AEL2/channel.c
team/murf/AEL2/channels/chan_agent.c
team/murf/AEL2/channels/chan_iax2.c
team/murf/AEL2/channels/chan_sip.c
team/murf/AEL2/codecs/codec_a_mu.c
team/murf/AEL2/codecs/codec_adpcm.c
team/murf/AEL2/codecs/codec_alaw.c
team/murf/AEL2/codecs/codec_g723_1.c
team/murf/AEL2/codecs/codec_g726.c
team/murf/AEL2/codecs/codec_gsm.c
team/murf/AEL2/codecs/codec_ilbc.c
team/murf/AEL2/codecs/codec_lpc10.c
team/murf/AEL2/codecs/codec_speex.c
team/murf/AEL2/codecs/codec_ulaw.c
team/murf/AEL2/codecs/gsm/Makefile
team/murf/AEL2/configs/alsa.conf.sample
team/murf/AEL2/configs/sip.conf.sample
team/murf/AEL2/configs/zapata.conf.sample
team/murf/AEL2/formats/format_pcm.c
team/murf/AEL2/formats/format_pcm_alaw.c
team/murf/AEL2/funcs/func_cdr.c
team/murf/AEL2/funcs/func_cut.c
team/murf/AEL2/funcs/func_logic.c
team/murf/AEL2/funcs/func_math.c
team/murf/AEL2/funcs/func_md5.c
team/murf/AEL2/funcs/func_odbc.c
team/murf/AEL2/funcs/func_rand.c
team/murf/AEL2/funcs/func_strings.c
team/murf/AEL2/include/asterisk/channel.h
team/murf/AEL2/include/asterisk/utils.h
team/murf/AEL2/pbx.c
team/murf/AEL2/res/res_agi.c
team/murf/AEL2/res/res_crypto.c
team/murf/AEL2/res/res_features.c
team/murf/AEL2/res/res_indications.c
team/murf/AEL2/res/res_monitor.c
team/murf/AEL2/res/res_musiconhold.c
team/murf/AEL2/res/res_osp.c
Propchange: team/murf/AEL2/
------------------------------------------------------------------------------
--- svnmerge-blocked (original)
+++ svnmerge-blocked Sat Jan 21 19:24:51 2006
@@ -1,1 +1,1 @@
-/branches/1.2:7490,7497,7517,7529,7546,7550,7552,7557,7580,7586,7595,7605,7641,7663,7706,7738,7771,7792,7812,7870-7871,7898-7900,7915,7960,7965,7970,7976,8047,8112
+/branches/1.2:7490,7497,7517,7529,7546,7550,7552,7557,7580,7586,7595,7605,7641,7663,7706,7738,7771,7792,7812,7870-7871,7898-7900,7915,7960,7965,7970,7976,8047,8112,8394,8412
Propchange: team/murf/AEL2/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Sat Jan 21 19:24:51 2006
@@ -1,1 +1,1 @@
-/trunk:1-8326
+/trunk:1-8415
Modified: team/murf/AEL2/apps/Makefile
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/Makefile?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/Makefile (original)
+++ team/murf/AEL2/apps/Makefile Sat Jan 21 19:24:51 2006
@@ -96,7 +96,7 @@
$(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} $(CURLLIBS)
app_sql_postgres.o: app_sql_postgres.c
- $(CC) -pipe -I/usr/local/pgsql/include $(CFLAGS) -c -o app_sql_postgres.o app_sql_postgres.c
+ $(CC) -pipe -I$(CROSS_COMPILE_TARGET)/usr/local/pgsql/include -I$(CROSS_COMPILE_TARGET)/usr/include/postgresql $(CFLAGS) -c -o app_sql_postgres.o app_sql_postgres.c
app_sql_postgres.so: app_sql_postgres.o
$(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} -L/usr/local/pgsql/lib -lpq
Modified: team/murf/AEL2/apps/app_authenticate.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_authenticate.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_authenticate.c (original)
+++ team/murf/AEL2/apps/app_authenticate.c Sat Jan 21 19:24:51 2006
@@ -128,7 +128,10 @@
}
}
- argcopy = ast_strdupa(data);
+ if (!(argcopy = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(arglist,argcopy);
Modified: team/murf/AEL2/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_chanspy.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_chanspy.c (original)
+++ team/murf/AEL2/apps/app_chanspy.c Sat Jan 21 19:24:51 2006
@@ -383,7 +383,8 @@
struct ast_flags flags;
signed char zero_volume = 0;
- args = ast_strdupa(data);
+ if (!(args = ast_strdupa(data)))
+ return -1;
LOCAL_USER_ADD(u);
Modified: team/murf/AEL2/apps/app_curl.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_curl.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_curl.c (original)
+++ team/murf/AEL2/apps/app_curl.c Sat Jan 21 19:24:51 2006
@@ -128,7 +128,10 @@
LOCAL_USER_ACF_ADD(u);
- info = ast_strdupa(data);
+ if (!(info = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return buf;
+ }
AST_STANDARD_APP_ARGS(args, info);
Modified: team/murf/AEL2/apps/app_db.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_db.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_db.c (original)
+++ team/murf/AEL2/apps/app_db.c Sat Jan 21 19:24:51 2006
@@ -75,7 +75,10 @@
LOCAL_USER_ADD(u);
- argv = ast_strdupa(data);
+ if (!(argv = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return 0;
+ }
if (strchr(argv, '/')) {
family = strsep(&argv, "/");
@@ -116,7 +119,10 @@
LOCAL_USER_ADD(u);
- argv = ast_strdupa(data);
+ if (!(argv = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return 0;
+ }
if (strchr(argv, '/')) {
family = strsep(&argv, "/");
Modified: team/murf/AEL2/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_dial.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_dial.c (original)
+++ team/murf/AEL2/apps/app_dial.c Sat Jan 21 19:24:51 2006
@@ -786,7 +786,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -1623,7 +1626,10 @@
LOCAL_USER_ADD(u);
- announce = ast_strdupa(data);
+ if (!(announce = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
memset(&peerflags, 0, sizeof(peerflags));
Modified: team/murf/AEL2/apps/app_dictate.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_dictate.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_dictate.c (original)
+++ team/murf/AEL2/apps/app_dictate.c Sat Jan 21 19:24:51 2006
@@ -110,7 +110,8 @@
snprintf(dftbase, sizeof(dftbase), "%s/dictate", ast_config_AST_SPOOL_DIR);
if (!ast_strlen_zero(data)) {
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data)))
+ return -1;
AST_STANDARD_APP_ARGS(args, parse);
} else
args.argc = 0;
Modified: team/murf/AEL2/apps/app_directory.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_directory.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_directory.c (original)
+++ team/murf/AEL2/apps/app_directory.c Sat Jan 21 19:24:51 2006
@@ -431,7 +431,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
Modified: team/murf/AEL2/apps/app_disa.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_disa.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_disa.c (original)
+++ team/murf/AEL2/apps/app_disa.c Sat Jan 21 19:24:51 2006
@@ -161,7 +161,10 @@
ast_log(LOG_DEBUG, "Digittimeout: %d\n", digittimeout);
ast_log(LOG_DEBUG, "Responsetimeout: %d\n", firstdigittimeout);
- tmp = ast_strdupa(data);
+ if (!(tmp = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, tmp);
Modified: team/murf/AEL2/apps/app_exec.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_exec.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_exec.c (original)
+++ team/murf/AEL2/apps/app_exec.c Sat Jan 21 19:24:51 2006
@@ -73,9 +73,7 @@
/* Check and parse arguments */
if (data) {
- s = ast_strdupa(data);
- appname = strsep(&s, "(");
- if (s) {
+ if ((s = ast_strdupa(data))) {
endargs = strrchr(s, ')');
if (endargs)
*endargs = '\0';
@@ -89,7 +87,17 @@
ast_log(LOG_WARNING, "Could not find application (%s)\n", appname);
res = -1;
}
- }
+ if (appname) {
+ app = pbx_findapp(appname);
+ if (app) {
+ res = pbx_exec(chan, app, args, 1);
+ } else {
+ ast_log(LOG_WARNING, "Could not find application (%s)\n", appname);
+ res = -1;
+ }
+ }
+ } else
+ res = -1;
}
LOCAL_USER_REMOVE(u);
Modified: team/murf/AEL2/apps/app_externalivr.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_externalivr.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_externalivr.c (original)
+++ team/murf/AEL2/apps/app_externalivr.c Sat Jan 21 19:24:51 2006
@@ -271,7 +271,10 @@
goto exit;
}
- buf = ast_strdupa(data);
+ if (!(buf = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
argc = ast_app_separate_args(buf, '|', argv, sizeof(argv) / sizeof(argv[0]));
Modified: team/murf/AEL2/apps/app_festival.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_festival.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_festival.c (original)
+++ team/murf/AEL2/apps/app_festival.c Sat Jan 21 19:24:51 2006
@@ -339,7 +339,11 @@
festivalcommand = "(tts_textasterisk \"%s\" 'file)(quit)\n";
}
- data = ast_strdupa(vdata);
+ if (!(data = ast_strdupa(vdata))) {
+ ast_config_destroy(cfg);
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
intstr = strchr(data, '|');
if (intstr) {
Modified: team/murf/AEL2/apps/app_hasnewvoicemail.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_hasnewvoicemail.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_hasnewvoicemail.c (original)
+++ team/murf/AEL2/apps/app_hasnewvoicemail.c Sat Jan 21 19:24:51 2006
@@ -129,7 +129,10 @@
LOCAL_USER_ADD(u);
- input = ast_strdupa((char *)data);
+ if (!(input = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, input);
@@ -188,7 +191,10 @@
buf[0] = '\0';
- argsstr = ast_strdupa(data);
+ if (!(argsstr = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return buf;
+ }
AST_STANDARD_APP_ARGS(args, argsstr);
Modified: team/murf/AEL2/apps/app_image.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_image.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_image.c (original)
+++ team/murf/AEL2/apps/app_image.c Sat Jan 21 19:24:51 2006
@@ -78,7 +78,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
Modified: team/murf/AEL2/apps/app_macro.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_macro.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_macro.c (original)
+++ team/murf/AEL2/apps/app_macro.c Sat Jan 21 19:24:51 2006
@@ -307,7 +307,10 @@
LOCAL_USER_ADD(u);
- expr = ast_strdupa(data);
+ if (!(expr = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
if ((label_a = strchr(expr, '?'))) {
*label_a = '\0';
Modified: team/murf/AEL2/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_meetme.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_meetme.c (original)
+++ team/murf/AEL2/apps/app_meetme.c Sat Jan 21 19:24:51 2006
@@ -1778,7 +1778,8 @@
if (strcasecmp(var->name, "conf"))
continue;
- parse = ast_strdupa(var->value);
+ if (!(parse = ast_strdupa(var->value)))
+ return NULL;
AST_STANDARD_APP_ARGS(args, parse);
if (!strcasecmp(args.confno, confno)) {
@@ -1834,7 +1835,10 @@
LOCAL_USER_ADD(u);
- localdata = ast_strdupa(data);
+ if (!(localdata = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, localdata);
@@ -1978,8 +1982,6 @@
}
}
}
- } else {
- ast_log(LOG_ERROR, "Out of memory\n");
}
}
var = var->next;
Modified: team/murf/AEL2/apps/app_mixmonitor.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_mixmonitor.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_mixmonitor.c (original)
+++ team/murf/AEL2/apps/app_mixmonitor.c Sat Jan 21 19:24:51 2006
@@ -333,7 +333,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
Modified: team/murf/AEL2/apps/app_osplookup.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_osplookup.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_osplookup.c (original)
+++ team/murf/AEL2/apps/app_osplookup.c Sat Jan 21 19:24:51 2006
@@ -138,7 +138,10 @@
LOCAL_USER_ADD(u);
- temp = ast_strdupa(data);
+ if (!(temp = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, temp);
@@ -196,7 +199,10 @@
LOCAL_USER_ADD(u);
- temp = ast_strdupa(data);
+ if (!(temp = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, temp);
@@ -265,7 +271,10 @@
LOCAL_USER_ADD(u);
- temp = ast_strdupa(data);
+ if (!(temp = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, temp);
Modified: team/murf/AEL2/apps/app_page.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_page.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_page.c (original)
+++ team/murf/AEL2/apps/app_page.c Sat Jan 21 19:24:51 2006
@@ -163,7 +163,10 @@
return -1;
};
- options = ast_strdupa(data);
+ if (!(options = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
tmp = strsep(&options, "|");
if (options)
Modified: team/murf/AEL2/apps/app_playback.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_playback.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_playback.c (original)
+++ team/murf/AEL2/apps/app_playback.c Sat Jan 21 19:24:51 2006
@@ -89,7 +89,8 @@
return -1;
}
- tmp = ast_strdupa(data);
+ if (!(tmp = ast_strdupa(data)))
+ return -1;
LOCAL_USER_ADD(u);
AST_STANDARD_APP_ARGS(args, tmp);
Modified: team/murf/AEL2/apps/app_privacy.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_privacy.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_privacy.c (original)
+++ team/murf/AEL2/apps/app_privacy.c Sat Jan 21 19:24:51 2006
@@ -117,7 +117,10 @@
if (!ast_strlen_zero((char *)data))
{
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
Modified: team/murf/AEL2/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_queue.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_queue.c (original)
+++ team/murf/AEL2/apps/app_queue.c Sat Jan 21 19:24:51 2006
@@ -791,8 +791,7 @@
/*!\brief Reload a single queue via realtime.
\return Return the queue, or NULL if it doesn't exist.
- \note Should be called with the global qlock locked.
- When found, the queue is returned with q->lock locked. */
+ \note Should be called with the global qlock locked. */
static struct ast_call_queue *find_queue_by_name_rt(const char *queuename, struct ast_variable *queue_vars, struct ast_config *member_config)
{
struct ast_variable *v;
@@ -818,6 +817,7 @@
ast_mutex_unlock(&q->lock);
return NULL;
} else {
+ ast_mutex_unlock(&q->lock);
return q;
}
}
@@ -911,13 +911,60 @@
m = next_m;
}
+ ast_mutex_unlock(&q->lock);
+
return q;
}
-static int join_queue(char *queuename, struct queue_ent *qe, enum queue_result *reason)
+static struct ast_call_queue *load_realtime_queue(char *queuename)
{
struct ast_variable *queue_vars = NULL;
struct ast_config *member_config = NULL;
+ struct ast_call_queue *q;
+
+ /* Find the queue in the in-core list first. */
+ ast_mutex_lock(&qlock);
+ for (q = queues; q; q = q->next) {
+ if (!strcasecmp(q->name, queuename)) {
+ break;
+ }
+ }
+ ast_mutex_unlock(&qlock);
+
+ if (!q) {
+ /*! \note Load from realtime before taking the global qlock, to avoid blocking all
+ queue operations while waiting for the DB.
+
+ This will be two separate database transactions, so we might
+ see queue parameters as they were before another process
+ changed the queue and member list as it was after the change.
+ Thus we might see an empty member list when a queue is
+ deleted. In practise, this is unlikely to cause a problem. */
+
+ queue_vars = ast_load_realtime("queues", "name", queuename, NULL);
+ if (queue_vars) {
+ member_config = ast_load_realtime_multientry("queue_members", "interface LIKE", "%", "queue_name", queuename, NULL);
+ if (!member_config) {
+ ast_log(LOG_ERROR, "no queue_members defined in your config (extconfig.conf).\n");
+ return NULL;
+ }
+ }
+
+ ast_mutex_lock(&qlock);
+
+ q = find_queue_by_name_rt(queuename, queue_vars, member_config);
+ if (member_config)
+ ast_config_destroy(member_config);
+ if (queue_vars)
+ ast_variables_destroy(queue_vars);
+
+ ast_mutex_unlock(&qlock);
+ }
+ return q;
+}
+
+static int join_queue(char *queuename, struct queue_ent *qe, enum queue_result *reason)
+{
struct ast_call_queue *q;
struct queue_ent *cur, *prev = NULL;
int res = -1;
@@ -925,35 +972,12 @@
int inserted = 0;
enum queue_member_status stat;
- /*! \note Load from realtime before taking the global qlock, to avoid blocking all
- queue operations while waiting for the DB.
-
- This will be two separate database transactions, so we might
- see queue parameters as they were before another process
- changed the queue and member list as it was after the change.
- Thus we might see an empty member list when a queue is
- deleted. In practise, this is unlikely to cause a problem. */
- queue_vars = ast_load_realtime("queues", "name", queuename, NULL);
- if (queue_vars) {
- member_config = ast_load_realtime_multientry("queue_members", "interface LIKE", "%", "queue_name", queuename, NULL);
- if (!member_config) {
- ast_log(LOG_ERROR, "no queue_members defined in your config (extconfig.conf).\n");
- return res;
- }
- }
+ q = load_realtime_queue(queuename);
+ if (!q)
+ return res;
ast_mutex_lock(&qlock);
- q = find_queue_by_name_rt(queuename, queue_vars, member_config);
- /* Note: If found, find_queue_by_name_rt() returns with q->lock locked. */
- if(member_config)
- ast_config_destroy(member_config);
- if(queue_vars)
- ast_variables_destroy(queue_vars);
-
- if (!q) {
- ast_mutex_unlock(&qlock);
- return res;
- }
+ ast_mutex_lock(&q->lock);
/* This is our one */
stat = get_member_status(q, qe->max_penalty);
@@ -2452,41 +2476,42 @@
struct member *new_member;
int res = RES_NOSUCHQUEUE;
+ /* \note Ensure the appropriate realtime queue is loaded. Note that this
+ * short-circuits if the queue is already in memory. */
+ q = load_realtime_queue(queuename);
+
ast_mutex_lock(&qlock);
- for (q = queues ; q ; q = q->next) {
+
+ if (q) {
ast_mutex_lock(&q->lock);
- if (!strcmp(q->name, queuename)) {
- if (interface_exists(q, interface) == NULL) {
- new_member = create_queue_member(interface, penalty, paused);
-
- if (new_member != NULL) {
- new_member->dynamic = 1;
- new_member->next = q->members;
- q->members = new_member;
- manager_event(EVENT_FLAG_AGENT, "QueueMemberAdded",
- "Queue: %s\r\n"
- "Location: %s\r\n"
- "Membership: %s\r\n"
- "Penalty: %d\r\n"
- "CallsTaken: %d\r\n"
- "LastCall: %d\r\n"
- "Status: %d\r\n"
- "Paused: %d\r\n",
- q->name, new_member->interface, new_member->dynamic ? "dynamic" : "static",
- new_member->penalty, new_member->calls, (int)new_member->lastcall, new_member->status, new_member->paused);
+ if (interface_exists(q, interface) == NULL) {
+ new_member = create_queue_member(interface, penalty, paused);
+
+ if (new_member != NULL) {
+ new_member->dynamic = 1;
+ new_member->next = q->members;
+ q->members = new_member;
+ manager_event(EVENT_FLAG_AGENT, "QueueMemberAdded",
+ "Queue: %s\r\n"
+ "Location: %s\r\n"
+ "Membership: %s\r\n"
+ "Penalty: %d\r\n"
+ "CallsTaken: %d\r\n"
+ "LastCall: %d\r\n"
+ "Status: %d\r\n"
+ "Paused: %d\r\n",
+ q->name, new_member->interface, new_member->dynamic ? "dynamic" : "static",
+ new_member->penalty, new_member->calls, (int)new_member->lastcall, new_member->status, new_member->paused);
- if (dump)
- dump_queue_members(q);
-
- res = RES_OKAY;
- } else {
- res = RES_OUTOFMEMORY;
- }
+ if (dump)
+ dump_queue_members(q);
+
+ res = RES_OKAY;
} else {
- res = RES_EXISTS;
- }
- ast_mutex_unlock(&q->lock);
- break;
+ res = RES_OUTOFMEMORY;
+ }
+ } else {
+ res = RES_EXISTS;
}
ast_mutex_unlock(&q->lock);
}
@@ -2645,7 +2670,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -2697,7 +2725,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -2751,7 +2782,10 @@
LOCAL_USER_ADD(u);
- parse = ast_strdupa(data);
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(args, parse);
@@ -2815,11 +2849,7 @@
LOCAL_USER_ADD(u);
- if (!(parse = ast_strdupa(data))) {
- ast_log(LOG_WARNING, "Memory Error!\n");
- LOCAL_USER_REMOVE(u);
- return -1;
- }
+ parse = ast_strdupa(data);
AST_STANDARD_APP_ARGS(args, parse);
@@ -3403,7 +3433,13 @@
time(&now);
if ((!queue_show && argc != 2) || (queue_show && argc != 3))
return RESULT_SHOWUSAGE;
+
+ /* We only want to load realtime queues when a specific queue is asked for. */
+ if (queue_show)
+ load_realtime_queue(argv[2]);
+
ast_mutex_lock(&qlock);
+
q = queues;
if (!q) {
ast_mutex_unlock(&qlock);
Modified: team/murf/AEL2/apps/app_random.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_random.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_random.c (original)
+++ team/murf/AEL2/apps/app_random.c Sat Jan 21 19:24:51 2006
@@ -73,7 +73,10 @@
LOCAL_USER_ADD(u);
- s = ast_strdupa(data);
+ if (!(s = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
prob = strsep(&s,":");
if ((!prob) || (sscanf(prob, "%d", &probint) != 1))
Modified: team/murf/AEL2/apps/app_read.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_read.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_read.c (original)
+++ team/murf/AEL2/apps/app_read.c Sat Jan 21 19:24:51 2006
@@ -117,7 +117,10 @@
LOCAL_USER_ADD(u);
- argcopy = ast_strdupa(data);
+ if (!(argcopy = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
AST_STANDARD_APP_ARGS(arglist, argcopy);
Modified: team/murf/AEL2/apps/app_readfile.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_readfile.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_readfile.c (original)
+++ team/murf/AEL2/apps/app_readfile.c Sat Jan 21 19:24:51 2006
@@ -73,7 +73,10 @@
LOCAL_USER_ADD(u);
- s = ast_strdupa(data);
+ if (!(s = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
varname = strsep(&s, "=");
file = strsep(&s, "|");
Modified: team/murf/AEL2/apps/app_record.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_record.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_record.c (original)
+++ team/murf/AEL2/apps/app_record.c Sat Jan 21 19:24:51 2006
@@ -116,7 +116,10 @@
LOCAL_USER_ADD(u);
/* Yay for strsep being easy */
- vdata = ast_strdupa(data);
+ if (!(vdata = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
p = vdata;
filename = strsep(&p, "|");
Modified: team/murf/AEL2/apps/app_sayunixtime.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_sayunixtime.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_sayunixtime.c (original)
+++ team/murf/AEL2/apps/app_sayunixtime.c Sat Jan 21 19:24:51 2006
@@ -92,12 +92,14 @@
}
if (data) {
- s = ast_strdupa(data);
- timec = strsep(&s,"|");
- if ((timec) && (*timec != '\0')) {
- long timein;
- if (sscanf(timec,"%ld",&timein) == 1) {
- unixtime = (time_t)timein;
+ s = data;
+ if ((s = ast_strdupa(s))) {
+ timec = strsep(&s,"|");
+ if ((timec) && (*timec != '\0')) {
+ long timein;
+ if (sscanf(timec,"%ld",&timein) == 1) {
+ unixtime = (time_t)timein;
+ }
}
}
if (s) {
Modified: team/murf/AEL2/apps/app_senddtmf.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_senddtmf.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_senddtmf.c (original)
+++ team/murf/AEL2/apps/app_senddtmf.c Sat Jan 21 19:24:51 2006
@@ -74,7 +74,10 @@
LOCAL_USER_ADD(u);
- digits = ast_strdupa(data);
+ if (!(digits = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
if ((to = strchr(digits,'|'))) {
*to = '\0';
Modified: team/murf/AEL2/apps/app_sendtext.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_sendtext.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_sendtext.c (original)
+++ team/murf/AEL2/apps/app_sendtext.c Sat Jan 21 19:24:51 2006
@@ -87,8 +87,12 @@
ast_log(LOG_WARNING, "SendText requires an argument (text[|options])\n");
LOCAL_USER_REMOVE(u);
return -1;
- } else
- parse = ast_strdupa(data);
+ } else {
+ if (!(parse = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
+ }
AST_STANDARD_APP_ARGS(args, parse);
Modified: team/murf/AEL2/apps/app_setcallerid.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_setcallerid.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_setcallerid.c (original)
+++ team/murf/AEL2/apps/app_setcallerid.c Sat Jan 21 19:24:51 2006
@@ -117,7 +117,10 @@
LOCAL_USER_ADD(u);
- tmp = ast_strdupa(data);
+ if (!(tmp = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
opt = strchr(tmp, '|');
if (opt) {
Modified: team/murf/AEL2/apps/app_skel.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_skel.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_skel.c (original)
+++ team/murf/AEL2/apps/app_skel.c Sat Jan 21 19:24:51 2006
@@ -87,7 +87,10 @@
/* Do our thing here */
/* We need to make a copy of the input string if we are going to modify it! */
- args = ast_strdupa(data);
+ if (!(args = ast_strdupa(data))) {
+ LOCAL_USER_REMOVE(u);
+ return -1;
+ }
if ((argc = ast_app_separate_args(args, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
dummy = argv[0];
Modified: team/murf/AEL2/apps/app_sql_postgres.c
URL: http://svn.digium.com/view/asterisk/team/murf/AEL2/apps/app_sql_postgres.c?rev=8416&r1=8415&r2=8416&view=diff
==============================================================================
--- team/murf/AEL2/apps/app_sql_postgres.c (original)
+++ team/murf/AEL2/apps/app_sql_postgres.c Sat Jan 21 19:24:51 2006
@@ -21,7 +21,7 @@
* \brief Connect to PostgreSQL
*
* \author Christos Ricudis <ricudis at itc.auth.gr>
- *
+ *
* \ingroup applications
*/
@@ -44,6 +44,7 @@
#include "asterisk/linkedlists.h"
#include "asterisk/chanvars.h"
#include "asterisk/lock.h"
+#include "asterisk/utils.h"
#include "libpq-fe.h"
@@ -53,65 +54,65 @@
static char *synopsis = "Do several SQLy things";
-static char *descrip =
+static char *descrip =
"PGSQL(): Do several SQLy things\n"
"Syntax:\n"
" PGSQL(Connect var option-string)\n"
" Connects to a database. Option string contains standard PostgreSQL\n"
-" parameters like host=, dbname=, user=. Connection identifer returned\n"
-" in ${var}\n"
+" parameters like host=, dbname=, user=. Connection identifier returned\n"
+" in ${var}.\n"
" PGSQL(Query var ${connection_identifier} query-string)\n"
" Executes standard SQL query contained in query-string using established\n"
-" connection identified by ${connection_identifier}. Reseult of query is\n"
-" is stored in ${var}.\n"
+" connection identified by ${connection_identifier}. Result of query is\n"
+" stored in ${var}.\n"
" PGSQL(Fetch statusvar ${result_identifier} var1 var2 ... varn)\n"
" Fetches a single row from a result set contained in ${result_identifier}.\n"
" Assigns returned fields to ${var1} ... ${varn}. ${statusvar} is set TRUE\n"
-" if additional rows exist in reseult set.\n"
+" if additional rows exist in result set.\n"
" PGSQL(Clear ${result_identifier})\n"
-" Frees memory and datastructures associated with result set.\n"
+" Frees memory and data structures associated with result set.\n"
" PGSQL(Disconnect ${connection_identifier})\n"
" Disconnects from named connection to PostgreSQL.\n" ;
/*
-Syntax of SQL commands :
+Syntax of SQL commands :
Connect var option-string
-
- Connects to a database using the option-string and stores the
+
+ Connects to a database using the option-string and stores the
connection identifier in ${var}
-
-
+
+
Query var ${connection_identifier} query-string
-
+
Submits query-string to database backend and stores the result
identifier in ${var}
-
-
+
+
Fetch statusvar ${result_identifier} var1 var2 var3 ... varn
-
- Fetches a row from the query and stores end-of-table status in
- ${statusvar} and columns in ${var1}..${varn}
-
-
+
+ Fetches a row from the query and stores end-of-table status in
+ ${statusvar} and columns in ${var1} ... ${varn}
+
+
Clear ${result_identifier}
[... 5053 lines stripped ...]
More information about the asterisk-commits
mailing list