[svn-commits] seanbright: branch seanbright/resolve-shadow-warnings r136296 - in /team/sean...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Aug 6 19:05:04 CDT 2008


Author: seanbright
Date: Wed Aug  6 19:05:03 2008
New Revision: 136296

URL: http://svn.digium.com/view/asterisk?view=rev&rev=136296
Log:
Merged revisions 135474,135476,135480,135483,135485,135537,135598,135648,135680-135681,135717,135748,135821,135851,135900,135938,135950,136005,136034,136063,136112,136141,136191,136239,136245 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r135474 | russell | 2008-08-04 12:28:07 -0400 (Mon, 04 Aug 2008) | 10 lines

Merged revisions 135473 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135473 | russell | 2008-08-04 11:26:17 -0500 (Mon, 04 Aug 2008) | 2 lines

Add a minor clarification to the documentation of mohinterpret and mohsuggest

........

................
r135476 | tilghman | 2008-08-04 12:34:04 -0400 (Mon, 04 Aug 2008) | 6 lines

HTTP module memory leaks
(closes issue #13230)
 Reported by: eliel
 Patches: 
       res_http_post_leak.patch uploaded by eliel (license 64)

................
r135480 | tilghman | 2008-08-04 12:58:29 -0400 (Mon, 04 Aug 2008) | 14 lines

Merged revisions 135479 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135479 | tilghman | 2008-08-04 11:56:19 -0500 (Mon, 04 Aug 2008) | 6 lines

Memory leak on unload
(closes issue #13231)
 Reported by: eliel
 Patches: 
       app_voicemail.leak.patch uploaded by eliel (license 64)

........

................
r135483 | tilghman | 2008-08-04 13:08:42 -0400 (Mon, 04 Aug 2008) | 11 lines

Merged revisions 135482 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135482 | tilghman | 2008-08-04 12:07:52 -0500 (Mon, 04 Aug 2008) | 2 lines

Define ASTSBINDIR for script
(Closes issue #13221)

........

................
r135485 | tilghman | 2008-08-04 13:12:15 -0400 (Mon, 04 Aug 2008) | 3 lines

Rename Mandrake scripts to Mandriva
(Closes issue #13221)

................
r135537 | russell | 2008-08-04 16:15:27 -0400 (Mon, 04 Aug 2008) | 10 lines

Merged revisions 135536 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135536 | russell | 2008-08-04 15:15:03 -0500 (Mon, 04 Aug 2008) | 2 lines

fix a config sample typo

........

................
r135598 | seanbright | 2008-08-05 09:26:34 -0400 (Tue, 05 Aug 2008) | 9 lines

Merged revisions 135597 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135597 | seanbright | 2008-08-05 09:25:00 -0400 (Tue, 05 Aug 2008) | 1 line

Use PATH_MAX for filenames
........

................
r135648 | tilghman | 2008-08-05 11:30:23 -0400 (Tue, 05 Aug 2008) | 3 lines

Always output a version string, even when we can't figure out what we are.
(Closes issue #13223)

................
r135680 | kpfleming | 2008-08-05 12:56:11 -0400 (Tue, 05 Aug 2008) | 2 lines

make datastore creation and destruction a generic API since it is not really channel related, and add the ability to add/find/remove datastores to manager sessions

................
r135681 | kpfleming | 2008-08-05 13:05:34 -0400 (Tue, 05 Aug 2008) | 3 lines

datastore inheritance is a channel feature, so move this definition back


................
r135717 | tilghman | 2008-08-05 14:25:16 -0400 (Tue, 05 Aug 2008) | 2 lines

Add '+=' append operator to configuration files.

................
r135748 | tilghman | 2008-08-05 17:37:35 -0400 (Tue, 05 Aug 2008) | 17 lines

Merged revisions 135747 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135747 | tilghman | 2008-08-05 16:34:46 -0500 (Tue, 05 Aug 2008) | 9 lines

In a conversion to use ast_strlen_zero, the meaning of the flag IAX_HASCALLERID
was perverted.  This change reverts IAX2 to the original meaning, which was,
that the callerid set on the client should be overridden on the server, even if
that means the resulting callerid is blank.  In other words, if you set
"callerid=" in the IAX config, then the callerid should be overridden to blank,
even if set on the client.  Note that there's a distinction, even on realtime,
between the field not existing (NULL in databases) and the field existing, but
set to blank (override callerid to blank).

........

................
r135821 | murf | 2008-08-05 19:45:32 -0400 (Tue, 05 Aug 2008) | 42 lines

Merged revisions 135799 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135799 | murf | 2008-08-05 17:13:20 -0600 (Tue, 05 Aug 2008) | 34 lines

(closes issue #12982)
Reported by: bcnit
Tested by: murf

I discovered that also, in the previous bug fixes and changes,
the cdr.conf 'unanswered' option is not being obeyed, so
I fixed this.

And, yes, there are two 'answer' times involved in this
scenario, and I would agree with you, that the first 
answer time is the time that should appear in the CDR.
(the second 'answer' time is the time that the bridge
was begun).

I made the necessary adjustments, recording the first
answer time into the peer cdr, and then using that to
override the bridge cdr's value.

To get the 'unanswered' CDRs to appear, I purposely
output them, using the dial cmd to mark them as
DIALED (with a new flag), and outputting them if
they bear that flag, and you are in the right mode.

I also corrected one small mention of the Zap device
to equally consider the dahdi device.

I heavily tested 10-sec-wait macros in dial, and
without the macro call; I tested hangups while the
macro was running vs. letting the macro complete
and the bridge form. Looks OK. Removed all the
instrumentation and debug.



........

................
r135851 | mmichelson | 2008-08-05 20:30:53 -0400 (Tue, 05 Aug 2008) | 48 lines

Merged revisions 135841,135847,135850 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135841 | mmichelson | 2008-08-05 19:25:10 -0500 (Tue, 05 Aug 2008) | 27 lines

Merging the issue11259 branch.

The purpose of this branch was to take into account
"burps" which could cause jitterbuffers to misbehave.
One such example is if the L option to Dial() were used
to inject audio into a bridged conversation at regular
intervals. Since the audio here was not passed through
the jitterbuffer, it would cause a gap in the jitterbuffer's
timestamps which would cause a frames to be dropped for a 
brief period.

Now ast_generic_bridge will empty and reset the jitterbuffer
each time it is called. This causes injected audio to be handled
properly.

ast_generic_bridge also will empty and reset the jitterbuffer
if it receives an AST_CONTROL_SRCUPDATE frame since the change
in audio source could negatively affect the jitterbuffer.

All of this was made possible by adding a new public API call
to the abstract_jb called ast_jb_empty_and_reset.

(closes issue #11259)
Reported by: plack
Tested by: putnopvut


........
r135847 | mmichelson | 2008-08-05 19:27:54 -0500 (Tue, 05 Aug 2008) | 4 lines

Revert inadvertent changes to app_skel that occurred when
I was testing for a memory leak


........
r135850 | mmichelson | 2008-08-05 19:29:54 -0500 (Tue, 05 Aug 2008) | 3 lines

Remove properties that should not be here


........

................
r135900 | tilghman | 2008-08-05 23:04:01 -0400 (Tue, 05 Aug 2008) | 12 lines

Merged revisions 135899 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135899 | tilghman | 2008-08-05 22:02:59 -0500 (Tue, 05 Aug 2008) | 4 lines

1) Bugfix for debugging code
2) Reduce compiler warnings for another section of debugging code
(Closes issue #13237)

........

................
r135938 | tilghman | 2008-08-05 23:29:42 -0400 (Tue, 05 Aug 2008) | 12 lines

Merged revisions 135915 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135915 | tilghman | 2008-08-05 22:24:56 -0500 (Tue, 05 Aug 2008) | 4 lines

Since powerof() can return an error condition, it's foolhardy not to detect and
deal with that condition.
(Related to issue #13240)

........

................
r135950 | tilghman | 2008-08-05 23:55:49 -0400 (Tue, 05 Aug 2008) | 12 lines

Merged revisions 135949 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r135949 | tilghman | 2008-08-05 22:53:36 -0500 (Tue, 05 Aug 2008) | 4 lines

Fix a longstanding bug in channel walking logic, and fix the explanation to
make sense.
(Closes issue #13124)

........

................
r136005 | oej | 2008-08-06 09:34:08 -0400 (Wed, 06 Aug 2008) | 6 lines

- Formatting
- Changing debug messages from VERBOSE to DEBUG channel
- Adding a few todo's
- Adding a few more "XMPP"'s to compliment Jabber...


................
r136034 | tilghman | 2008-08-06 10:51:51 -0400 (Wed, 06 Aug 2008) | 3 lines

Use a dynamic buffer for rendered SQL, instead of hardcoding 2048 bytes.  Also,
switch to using RWLISTs for the linked list of queries.

................
r136063 | mmichelson | 2008-08-06 11:59:29 -0400 (Wed, 06 Aug 2008) | 24 lines

Merged revisions 136062 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r136062 | mmichelson | 2008-08-06 10:58:40 -0500 (Wed, 06 Aug 2008) | 16 lines

Since adding the AST_CONTROL_SRCUPDATE frame type,
there are places where ast_rtp_new_source may be called
where the tech_pvt of a channel may not yet have an
rtp structure allocated. This caused a crash in chan_skinny,
which was fixed earlier, but now the same crash has been 
reported against chan_h323 as well. It seems that the best 
solution is to modify ast_rtp_new_source to not attempt to 
set the marker bit if the rtp structure passed in is NULL.

This change to ast_rtp_new_source also allows the removal
of what is now a redundant pointer check from chan_skinny.

(closes issue #13247)
Reported by: pj


........

................
r136112 | tilghman | 2008-08-06 12:58:42 -0400 (Wed, 06 Aug 2008) | 7 lines

Persist DIALGROUP() values in astdb
(closes issue #13138)
 Reported by: Corydon76
 Patches: 
       20080725__bug13138.diff.txt uploaded by Corydon76 (license 14)
 Tested by: pj

................
r136141 | tilghman | 2008-08-06 13:33:48 -0400 (Wed, 06 Aug 2008) | 6 lines

Janitor ast_str project
(closes issue #13058)
 Reported by: pputman
 Patches: 
       app_meetme_aststr2.patch uploaded by pputman (license 81)

................
r136191 | tilghman | 2008-08-06 16:15:34 -0400 (Wed, 06 Aug 2008) | 12 lines

Merged revisions 136190 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r136190 | tilghman | 2008-08-06 15:14:54 -0500 (Wed, 06 Aug 2008) | 4 lines

-C option takes a filename, not a directory path.
(closes issue #13007)
 Reported by: klaus3000

........

................
r136239 | mmichelson | 2008-08-06 16:43:58 -0400 (Wed, 06 Aug 2008) | 11 lines

Blocked revisions 136238 via svnmerge

........
r136238 | mmichelson | 2008-08-06 15:42:15 -0500 (Wed, 06 Aug 2008) | 4 lines

We only need to unregister the QueueStatus manager
command once on an unload


........

................
r136245 | dhubbard | 2008-08-06 17:22:56 -0400 (Wed, 06 Aug 2008) | 1 line

move taskprocessor CLI commands into the core namespace
................

Added:
    team/seanbright/resolve-shadow-warnings/contrib/init.d/rc.mandriva.asterisk
      - copied unchanged from r136245, trunk/contrib/init.d/rc.mandriva.asterisk
    team/seanbright/resolve-shadow-warnings/contrib/init.d/rc.mandriva.zaptel
      - copied unchanged from r136245, trunk/contrib/init.d/rc.mandriva.zaptel
    team/seanbright/resolve-shadow-warnings/include/asterisk/datastore.h
      - copied unchanged from r136245, trunk/include/asterisk/datastore.h
    team/seanbright/resolve-shadow-warnings/main/datastore.c
      - copied unchanged from r136245, trunk/main/datastore.c
Removed:
    team/seanbright/resolve-shadow-warnings/contrib/init.d/rc.mandrake.asterisk
    team/seanbright/resolve-shadow-warnings/contrib/init.d/rc.mandrake.zaptel
Modified:
    team/seanbright/resolve-shadow-warnings/   (props changed)
    team/seanbright/resolve-shadow-warnings/CHANGES
    team/seanbright/resolve-shadow-warnings/Makefile
    team/seanbright/resolve-shadow-warnings/UPGRADE.txt
    team/seanbright/resolve-shadow-warnings/apps/app_chanspy.c
    team/seanbright/resolve-shadow-warnings/apps/app_dial.c
    team/seanbright/resolve-shadow-warnings/apps/app_meetme.c
    team/seanbright/resolve-shadow-warnings/apps/app_queue.c
    team/seanbright/resolve-shadow-warnings/apps/app_speech_utils.c
    team/seanbright/resolve-shadow-warnings/apps/app_stack.c
    team/seanbright/resolve-shadow-warnings/apps/app_voicemail.c
    team/seanbright/resolve-shadow-warnings/build_tools/make_version
    team/seanbright/resolve-shadow-warnings/channels/chan_iax2.c
    team/seanbright/resolve-shadow-warnings/channels/chan_skinny.c
    team/seanbright/resolve-shadow-warnings/configs/chan_dahdi.conf.sample
    team/seanbright/resolve-shadow-warnings/contrib/init.d/rc.redhat.asterisk
    team/seanbright/resolve-shadow-warnings/funcs/func_dialgroup.c
    team/seanbright/resolve-shadow-warnings/funcs/func_enum.c
    team/seanbright/resolve-shadow-warnings/funcs/func_global.c
    team/seanbright/resolve-shadow-warnings/funcs/func_lock.c
    team/seanbright/resolve-shadow-warnings/funcs/func_odbc.c
    team/seanbright/resolve-shadow-warnings/funcs/func_speex.c
    team/seanbright/resolve-shadow-warnings/funcs/func_volume.c
    team/seanbright/resolve-shadow-warnings/include/asterisk/abstract_jb.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/cdr.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/channel.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/config.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/http.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/manager.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/threadstorage.h
    team/seanbright/resolve-shadow-warnings/include/asterisk/utils.h
    team/seanbright/resolve-shadow-warnings/main/Makefile
    team/seanbright/resolve-shadow-warnings/main/abstract_jb.c
    team/seanbright/resolve-shadow-warnings/main/audiohook.c
    team/seanbright/resolve-shadow-warnings/main/cdr.c
    team/seanbright/resolve-shadow-warnings/main/channel.c
    team/seanbright/resolve-shadow-warnings/main/cli.c
    team/seanbright/resolve-shadow-warnings/main/config.c
    team/seanbright/resolve-shadow-warnings/main/features.c
    team/seanbright/resolve-shadow-warnings/main/fixedjitterbuf.h
    team/seanbright/resolve-shadow-warnings/main/http.c
    team/seanbright/resolve-shadow-warnings/main/manager.c
    team/seanbright/resolve-shadow-warnings/main/pbx.c
    team/seanbright/resolve-shadow-warnings/main/rtp.c
    team/seanbright/resolve-shadow-warnings/main/taskprocessor.c
    team/seanbright/resolve-shadow-warnings/main/translate.c
    team/seanbright/resolve-shadow-warnings/pbx/pbx_dundi.c
    team/seanbright/resolve-shadow-warnings/pbx/pbx_lua.c
    team/seanbright/resolve-shadow-warnings/res/res_agi.c
    team/seanbright/resolve-shadow-warnings/res/res_http_post.c
    team/seanbright/resolve-shadow-warnings/res/res_jabber.c
    team/seanbright/resolve-shadow-warnings/res/res_smdi.c

Propchange: team/seanbright/resolve-shadow-warnings/
------------------------------------------------------------------------------
Binary property 'branch-1.4-blocked' - no diff available.

Propchange: team/seanbright/resolve-shadow-warnings/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Propchange: team/seanbright/resolve-shadow-warnings/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Aug  6 19:05:03 2008
@@ -1,1 +1,1 @@
-/trunk:1-135467
+/trunk:1-136295

Modified: team/seanbright/resolve-shadow-warnings/CHANGES
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/CHANGES?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/CHANGES (original)
+++ team/seanbright/resolve-shadow-warnings/CHANGES Wed Aug  6 19:05:03 2008
@@ -199,6 +199,10 @@
     Skinny channels only.
   * You can now compile Asterisk against the Hoard Memory Allocator, see doc/hoard.txt
     for more information.
+  * Config file variables may now be appended to, by using the '+=' append
+    operator.  This is most helpful when working with long SQL queries in
+    func_odbc.conf, as the queries no longer need to be specified on a single
+    line.
 
 ------------------------------------------------------------------------------
 --- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0  -------------

Modified: team/seanbright/resolve-shadow-warnings/Makefile
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/Makefile?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/Makefile (original)
+++ team/seanbright/resolve-shadow-warnings/Makefile Wed Aug  6 19:05:03 2008
@@ -786,7 +786,7 @@
 			$(INSTALL) -m 755 contrib/init.d/rc.gentoo.asterisk $(DESTDIR)/etc/init.d/asterisk; \
 			if [ -z "$(DESTDIR)" ]; then /sbin/rc-update add asterisk default; fi; \
 		elif [ -f /etc/mandrake-release -o -f /etc/mandriva-release ]; then \
-			$(INSTALL) -m 755 contrib/init.d/rc.mandrake.asterisk $(DESTDIR)/etc/rc.d/init.d/asterisk; \
+			$(INSTALL) -m 755 contrib/init.d/rc.mandriva.asterisk $(DESTDIR)/etc/rc.d/init.d/asterisk; \
 			if [ -z "$(DESTDIR)" ]; then /sbin/chkconfig --add asterisk; fi; \
 		elif [ -f /etc/SuSE-release -o -f /etc/novell-release ]; then \
 			$(INSTALL) -m 755 contrib/init.d/rc.suse.asterisk $(DESTDIR)/etc/init.d/asterisk; \

Modified: team/seanbright/resolve-shadow-warnings/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/UPGRADE.txt?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/UPGRADE.txt (original)
+++ team/seanbright/resolve-shadow-warnings/UPGRADE.txt Wed Aug  6 19:05:03 2008
@@ -226,6 +226,13 @@
 * queues.conf: the queue-lessthan sound file option is no longer available, and the
   queue-round-seconds option no longer takes '1' as a valid parameter.
 
+* If you have any third party modules which use a config file variable whose
+  name ends in a '+', please note that the append capability added to this
+  version may now conflict with that variable naming scheme.  An easy
+  workaround is to ensure that a space occurs between the '+' and the '=',
+  to differentiate your variable from the append operator.  This potential
+  conflict is unlikely, but is documented here to be thorough.
+
 Manager:
 
 * Manager has been upgraded to version 1.1 with a lot of changes. 

Modified: team/seanbright/resolve-shadow-warnings/apps/app_chanspy.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_chanspy.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_chanspy.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_chanspy.c Wed Aug  6 19:05:03 2008
@@ -560,7 +560,7 @@
 			/* chanspy_ds->chan is NULL after this call */
 			chanspy_ds_destroy(datastore->data);
 			datastore->data = NULL;
-			ast_channel_datastore_free(datastore);
+			ast_datastore_free(datastore);
 		}
 		ast_channel_unlock(chan);
 	}
@@ -576,7 +576,7 @@
 
 	ast_mutex_lock(&chanspy_ds->lock);
 
-	if (!(datastore = ast_channel_datastore_alloc(&chanspy_ds_info, chanspy_ds->unique_id))) {
+	if (!(datastore = ast_datastore_alloc(&chanspy_ds_info, chanspy_ds->unique_id))) {
 		ast_mutex_unlock(&chanspy_ds->lock);
 		chanspy_ds = chanspy_ds_free(chanspy_ds);
 		ast_channel_unlock(chan);

Modified: team/seanbright/resolve-shadow-warnings/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_dial.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_dial.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_dial.c Wed Aug  6 19:05:03 2008
@@ -672,6 +672,10 @@
 					if (!peer) {
 						ast_verb(3, "%s answered %s\n", c->name, in->name);
 						peer = c;
+						if (peer->cdr) {
+							peer->cdr->answer = ast_tvnow();
+							peer->cdr->disposition = AST_CDR_ANSWERED;
+						}
 						ast_copy_flags64(peerflags, o,
 							OPT_CALLEE_TRANSFER | OPT_CALLER_TRANSFER |
 							OPT_CALLEE_HANGUP | OPT_CALLER_HANGUP |
@@ -1354,7 +1358,7 @@
 	ast_copy_flags64(peerflags, &opts, OPT_DTMF_EXIT | OPT_GO_ON | OPT_ORIGINAL_CLID | OPT_CALLER_HANGUP | OPT_IGNORE_FORWARDING);
 
 	/* Create datastore for channel dial features for caller */
-	if (!(ds_caller_features = ast_channel_datastore_alloc(&dial_features_info, NULL))) {
+	if (!(ds_caller_features = ast_datastore_alloc(&dial_features_info, NULL))) {
 		ast_log(LOG_WARNING, "Unable to create channel datastore for dial features. Aborting!\n");
 		goto out;
 	}
@@ -1416,7 +1420,7 @@
 		if (datastore)
 			dialed_interfaces = datastore->data;
 		else {
-			if (!(datastore = ast_channel_datastore_alloc(&dialed_interface_info, NULL))) {
+			if (!(datastore = ast_datastore_alloc(&dialed_interface_info, NULL))) {
 				ast_log(LOG_WARNING, "Unable to create channel datastore for dialed interfaces. Aborting!\n");
 				ast_free(tmp);
 				goto out;
@@ -1522,7 +1526,7 @@
 			ast_copy_string(tc->exten, chan->exten, sizeof(tc->exten));
 
 		/* Save callee features */
-		if (!(ds_callee_features = ast_channel_datastore_alloc(&dial_features_info, NULL))) {
+		if (!(ds_callee_features = ast_datastore_alloc(&dial_features_info, NULL))) {
 			ast_log(LOG_WARNING, "Unable to create channel datastore for dial features. Aborting!\n");
 			ast_free(tmp);
 			goto out;
@@ -1624,7 +1628,7 @@
 	 * datastore again, causing a crash
 	 */
 	if (!ast_channel_datastore_remove(chan, datastore))
-		ast_channel_datastore_free(datastore);
+		ast_datastore_free(datastore);
 	if (!peer) {
 		if (result) {
 			res = result;

Modified: team/seanbright/resolve-shadow-warnings/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_meetme.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_meetme.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_meetme.c Wed Aug  6 19:05:03 2008
@@ -954,7 +954,7 @@
 	int hr, min, sec;
 	int i = 0, total = 0;
 	time_t now;
-	char cmdline[1024] = "";
+	struct ast_str *cmdline = NULL;
 #define MC_HEADER_FORMAT "%-14s %-14s %-10s %-8s  %-8s  %-6s\n"
 #define MC_DATA_FORMAT "%-12.12s   %4.4d	      %4.4s       %02d:%02d:%02d  %-8s  %-6s\n"
 
@@ -976,106 +976,126 @@
 		if (strlen(a->argv[i]) > 100)
 			ast_cli(a->fd, "Invalid Arguments.\n");
 	}
+
+	/* Max confno length */
+	if (!(cmdline = ast_str_create(MAX_CONFNUM))) {
+		return CLI_FAILURE;
+	}
+
 	if (a->argc == 1 || (a->argc == 2 && !strcasecmp(a->argv[1], "concise"))) {
 		/* 'MeetMe': List all the conferences */	
 		int concise = (a->argc == 2 && !strcasecmp(a->argv[1], "concise"));
 		now = time(NULL);
 		AST_LIST_LOCK(&confs);
 		if (AST_LIST_EMPTY(&confs)) {
-			if (!concise)
+			if (!concise) {
 				ast_cli(a->fd, "No active MeetMe conferences.\n");
+			}
 			AST_LIST_UNLOCK(&confs);
+			ast_free(cmdline);
 			return CLI_SUCCESS;
 		}
-		if (!concise)
+		if (!concise) {
 			ast_cli(a->fd, MC_HEADER_FORMAT, "Conf Num", "Parties", "Marked", "Activity", "Creation", "Locked");
+		}
 		AST_LIST_TRAVERSE(&confs, cnf, list) {
-			if (cnf->markedusers == 0)
-				strcpy(cmdline, "N/A ");
-			else 
-				snprintf(cmdline, sizeof(cmdline), "%4.4d", cnf->markedusers);
+			if (cnf->markedusers == 0) {
+				ast_str_set(&cmdline, 0, "N/A ");
+			} else {
+				ast_str_set(&cmdline, 0, "%4.4d", cnf->markedusers);
+			}
 			hr = (now - cnf->start) / 3600;
 			min = ((now - cnf->start) % 3600) / 60;
 			sec = (now - cnf->start) % 60;
-			if (!concise)
-				ast_cli(a->fd, MC_DATA_FORMAT, cnf->confno, cnf->users, cmdline, hr, min, sec, cnf->isdynamic ? "Dynamic" : "Static", cnf->locked ? "Yes" : "No");
-			else {
-				ast_cli(a->fd, "%s!%d!%d!%02d:%02d:%02d!%d!%d\n", 
-					cnf->confno, 
-					cnf->users, 
-					cnf->markedusers, 
+			if (!concise) {
+				ast_cli(a->fd, MC_DATA_FORMAT, cnf->confno, cnf->users, cmdline->str, hr, min, sec, cnf->isdynamic ? "Dynamic" : "Static", cnf->locked ? "Yes" : "No");
+			} else {
+				ast_cli(a->fd, "%s!%d!%d!%02d:%02d:%02d!%d!%d\n",
+					cnf->confno,
+					cnf->users,
+					cnf->markedusers,
 					hr, min, sec,
-					cnf->isdynamic, 
+					cnf->isdynamic,
 					cnf->locked);
 			}
 
-			total += cnf->users; 	
+			total += cnf->users;
 		}
 		AST_LIST_UNLOCK(&confs);
-		if (!concise)
+		if (!concise) {
 			ast_cli(a->fd, "* Total number of MeetMe users: %d\n", total);
+		}
+		ast_free(cmdline);
 		return CLI_SUCCESS;
 	}
-	if (a->argc < 3)
+	if (a->argc < 3) {
+		ast_free(cmdline);
 		return CLI_SHOWUSAGE;
-	ast_copy_string(cmdline, a->argv[2], sizeof(cmdline));	/* Argv 2: conference number */
-	if (strstr(a->argv[1], "lock")) {	
+	}
+
+	ast_str_set(&cmdline, 0, "%s", a->argv[2]);	/* Argv 2: conference number */
+	if (strstr(a->argv[1], "lock")) {
 		if (strcmp(a->argv[1], "lock") == 0) {
 			/* Lock */
-			strncat(cmdline, ",L", sizeof(cmdline) - strlen(cmdline) - 1);
+			ast_str_append(&cmdline, 0, ",L");
 		} else {
 			/* Unlock */
-			strncat(cmdline, ",l", sizeof(cmdline) - strlen(cmdline) - 1);
+			ast_str_append(&cmdline, 0, ",l");
 		}
 	} else if (strstr(a->argv[1], "mute")) { 
-		if (a->argc < 4)
+		if (a->argc < 4) {
+			ast_free(cmdline);
 			return CLI_SHOWUSAGE;
+		}
 		if (strcmp(a->argv[1], "mute") == 0) {
 			/* Mute */
 			if (strcmp(a->argv[3], "all") == 0) {
-				strncat(cmdline, ",N", sizeof(cmdline) - strlen(cmdline) - 1);
+				ast_str_append(&cmdline, 0, ",N");
 			} else {
-				strncat(cmdline, ",M,", sizeof(cmdline) - strlen(cmdline) - 1);	
-				strncat(cmdline, a->argv[3], sizeof(cmdline) - strlen(cmdline) - 1);
+				ast_str_append(&cmdline, 0, ",M,%s", a->argv[3]);	
 			}
 		} else {
 			/* Unmute */
 			if (strcmp(a->argv[3], "all") == 0) {
-				strncat(cmdline, ",n", sizeof(cmdline) - strlen(cmdline) - 1);
+				ast_str_append(&cmdline, 0, ",n");
 			} else {
-				strncat(cmdline, ",m,", sizeof(cmdline) - strlen(cmdline) - 1);
-				strncat(cmdline, a->argv[3], sizeof(cmdline) - strlen(cmdline) - 1);
+				ast_str_append(&cmdline, 0, ",m,%s", a->argv[3]);
 			}
 		}
 	} else if (strcmp(a->argv[1], "kick") == 0) {
-		if (a->argc < 4)
+		if (a->argc < 4) {
+			ast_free(cmdline);
 			return CLI_SHOWUSAGE;
+		}
 		if (strcmp(a->argv[3], "all") == 0) {
 			/* Kick all */
-			strncat(cmdline, ",K", sizeof(cmdline) - strlen(cmdline) - 1);
+			ast_str_append(&cmdline, 0, ",K");
 		} else {
 			/* Kick a single user */
-			strncat(cmdline, ",k,", sizeof(cmdline) - strlen(cmdline) - 1);
-			strncat(cmdline, a->argv[3], sizeof(cmdline) - strlen(cmdline) - 1);
+			ast_str_append(&cmdline, 0, ",k,%s", a->argv[3]);
 		}
 	} else if (strcmp(a->argv[1], "list") == 0) {
 		int concise = (a->argc == 4 && (!strcasecmp(a->argv[3], "concise")));
 		/* List all the users in a conference */
 		if (AST_LIST_EMPTY(&confs)) {
-			if (!concise)
+			if (!concise) {
 				ast_cli(a->fd, "No active conferences.\n");
+			}
+			ast_free(cmdline);
 			return CLI_SUCCESS;	
 		}
 		/* Find the right conference */
 		AST_LIST_LOCK(&confs);
 		AST_LIST_TRAVERSE(&confs, cnf, list) {
-			if (strcmp(cnf->confno, a->argv[2]) == 0)
+			if (strcmp(cnf->confno, a->argv[2]) == 0) {
 				break;
+			}
 		}
 		if (!cnf) {
 			if (!concise)
 				ast_cli(a->fd, "No such conference: %s.\n", a->argv[2]);
 			AST_LIST_UNLOCK(&confs);
+			ast_free(cmdline);
 			return CLI_SUCCESS;
 		}
 		/* Show all the users */
@@ -1084,7 +1104,7 @@
 			hr = (now - user->jointime) / 3600;
 			min = ((now - user->jointime) % 3600) / 60;
 			sec = (now - user->jointime) % 60;
-			if (!concise)
+			if (!concise) {
 				ast_cli(a->fd, "User #: %-2.2d %12.12s %-20.20s Channel: %s %s %s %s %s %s %02d:%02d:%02d\n",
 					user->user_no,
 					S_OR(user->chan->cid.cid_num, "<unknown>"),
@@ -1095,7 +1115,7 @@
 					user->adminflags & ADMINFLAG_MUTED ? "(Admin Muted)" : user->adminflags & ADMINFLAG_SELFMUTED ? "(Muted)" : "",
 					user->adminflags & ADMINFLAG_T_REQUEST ? "(Request to Talk)" : "",
 					istalking(user->talking), hr, min, sec); 
-			else 
+			} else {
 				ast_cli(a->fd, "%d!%s!%s!%s!%s!%s!%s!%s!%d!%02d:%02d:%02d\n",
 					user->user_no,
 					S_OR(user->chan->cid.cid_num, ""),
@@ -1106,18 +1126,23 @@
 					user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED) ? "1" : "",
 					user->adminflags & ADMINFLAG_T_REQUEST ? "1" : "",
 					user->talking, hr, min, sec);
-			
-		}
-		if (!concise)
+			}
+		}
+		if (!concise) {
 			ast_cli(a->fd, "%d users in that conference.\n", cnf->users);
+		}
 		AST_LIST_UNLOCK(&confs);
+		ast_free(cmdline);
 		return CLI_SUCCESS;
-	} else 
+	} else {
+		ast_free(cmdline);
 		return CLI_SHOWUSAGE;
-
-	ast_debug(1, "Cmdline: %s\n", cmdline);
-
-	admin_exec(NULL, cmdline);
+	}
+
+	ast_debug(1, "Cmdline: %s\n", cmdline->str);
+
+	admin_exec(NULL, cmdline->str);
+	ast_free(cmdline);
 
 	return CLI_SUCCESS;
 }
@@ -3912,7 +3937,7 @@
 {
 	struct sla_station *station;
 	struct sla_trunk_ref *trunk_ref;
-	char conf_name[MAX_CONFNUM];
+	struct ast_str *conf_name = ast_str_create(16);
 	struct ast_flags conf_flags = { 0 };
 	struct ast_conference *conf;
 
@@ -3927,11 +3952,11 @@
 	}
 
 	ast_atomic_fetchadd_int((int *) &trunk_ref->trunk->active_stations, 1);
-	snprintf(conf_name, sizeof(conf_name), "SLA_%s", trunk_ref->trunk->name);
+	ast_str_set(&conf_name, 0, "SLA_%s", trunk_ref->trunk->name);
 	ast_set_flag(&conf_flags, 
 		CONFFLAG_QUIET | CONFFLAG_MARKEDEXIT | CONFFLAG_PASS_DTMF | CONFFLAG_SLA_STATION);
 	ast_answer(trunk_ref->chan);
-	conf = build_conf(conf_name, "", "", 0, 0, 1, trunk_ref->chan);
+	conf = build_conf(conf_name->str, "", "", 0, 0, 1, trunk_ref->chan);
 	if (conf) {
 		conf_run(trunk_ref->chan, conf, conf_flags.flags, NULL);
 		dispose_conf(conf);
@@ -3940,8 +3965,8 @@
 	trunk_ref->chan = NULL;
 	if (ast_atomic_dec_and_test((int *) &trunk_ref->trunk->active_stations) &&
 		trunk_ref->state != SLA_TRUNK_STATE_ONHOLD_BYME) {
-		strncat(conf_name, ",K", sizeof(conf_name) - strlen(conf_name) - 1);
-		admin_exec(NULL, conf_name);
+		ast_str_append(&conf_name, 0, ",K");
+		admin_exec(NULL, conf_name->str);
 		trunk_ref->trunk->hold_stations = 0;
 		sla_change_trunk_state(trunk_ref->trunk, SLA_TRUNK_STATE_IDLE, ALL_TRUNK_REFS, NULL);
 	}
@@ -3949,6 +3974,7 @@
 	ast_dial_join(station->dial);
 	ast_dial_destroy(station->dial);
 	station->dial = NULL;
+	ast_free(conf_name);
 
 	return NULL;
 }

Modified: team/seanbright/resolve-shadow-warnings/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_queue.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_queue.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_queue.c Wed Aug  6 19:05:03 2008
@@ -3120,7 +3120,7 @@
 	}
 
 	ast_channel_datastore_remove(new_chan, datastore);
-	ast_channel_datastore_free(datastore);
+	ast_datastore_free(datastore);
 }
 
 /*! \brief mechanism to tell if a queue caller was atxferred by a queue member.
@@ -3147,7 +3147,7 @@
 	}
 
 	ast_channel_lock(qe->chan);
-	if (!(ds = ast_channel_datastore_alloc(&queue_transfer_info, NULL))) {
+	if (!(ds = ast_datastore_alloc(&queue_transfer_info, NULL))) {
 		ast_channel_unlock(qe->chan);
 		ast_log(LOG_WARNING, "Unable to create transfer datastore. queue_log will not show attended transfer\n");
 		return;
@@ -3321,7 +3321,7 @@
 			goto out;
 		}
 		if (!datastore) {
-			if (!(datastore = ast_channel_datastore_alloc(&dialed_interface_info, NULL))) {
+			if (!(datastore = ast_datastore_alloc(&dialed_interface_info, NULL))) {
 				ao2_ref(cur, -1);
 				ao2_unlock(qe->parent);
 				if (use_weight)
@@ -3423,7 +3423,7 @@
 	 * datastore again, causing a crash
 	 */
 	if (datastore && !ast_channel_datastore_remove(qe->chan, datastore)) {
-		ast_channel_datastore_free(datastore);
+		ast_datastore_free(datastore);
 	}
 	ao2_lock(qe->parent);
 	if (qe->parent->strategy == QUEUE_STRATEGY_RRMEMORY) {
@@ -3845,7 +3845,7 @@
 			transfer_ds = ast_channel_datastore_find(qe->chan, &queue_transfer_info, NULL);
 			if (transfer_ds) {
 				ast_channel_datastore_remove(qe->chan, transfer_ds);
-				ast_channel_datastore_free(transfer_ds);
+				ast_datastore_free(transfer_ds);
 			}
 			ast_channel_unlock(qe->chan);
 		}

Modified: team/seanbright/resolve-shadow-warnings/apps/app_speech_utils.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_speech_utils.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_speech_utils.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_speech_utils.c Wed Aug  6 19:05:03 2008
@@ -364,7 +364,7 @@
 		return 0;
 	}
 
-	datastore = ast_channel_datastore_alloc(&speech_datastore, NULL);
+	datastore = ast_datastore_alloc(&speech_datastore, NULL);
 	if (datastore == NULL) {
 		ast_speech_destroy(speech);
 		pbx_builtin_setvar_helper(chan, "ERROR", "1");

Modified: team/seanbright/resolve-shadow-warnings/apps/app_stack.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_stack.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_stack.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_stack.c Wed Aug  6 19:05:03 2008
@@ -242,7 +242,7 @@
 
 	if (!stack_store) {
 		ast_debug(1, "Channel %s has no datastore, so we're allocating one.\n", chan->name);
-		stack_store = ast_channel_datastore_alloc(&stack_info, NULL);
+		stack_store = ast_datastore_alloc(&stack_info, NULL);
 		if (!stack_store) {
 			ast_log(LOG_ERROR, "Unable to allocate new datastore.  Gosub will fail.\n");
 			return -1;
@@ -251,7 +251,7 @@
 		oldlist = ast_calloc(1, sizeof(*oldlist));
 		if (!oldlist) {
 			ast_log(LOG_ERROR, "Unable to allocate datastore list head.  Gosub will fail.\n");
-			ast_channel_datastore_free(stack_store);
+			ast_datastore_free(stack_store);
 			return -1;
 		}
 

Modified: team/seanbright/resolve-shadow-warnings/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/apps/app_voicemail.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/apps/app_voicemail.c (original)
+++ team/seanbright/resolve-shadow-warnings/apps/app_voicemail.c Wed Aug  6 19:05:03 2008
@@ -9556,10 +9556,31 @@
 	return RESULT_SUCCESS;
 }
 
+/*! \brief Free the users structure. */
+static void free_vm_users(void) 
+{
+	struct ast_vm_user *current;
+	AST_LIST_LOCK(&users);
+	while ((current = AST_LIST_REMOVE_HEAD(&users, list))) {
+		ast_set_flag(current, VM_ALLOCED);
+		free_user(current);
+	}
+	AST_LIST_UNLOCK(&users);
+}
+
+/*! \brief Free the zones structure. */
+static void free_vm_zones(void)
+{
+	struct vm_zone *zcur;
+	AST_LIST_LOCK(&zones);
+	while ((zcur = AST_LIST_REMOVE_HEAD(&zones, list)))
+		free_zone(zcur);
+	AST_LIST_UNLOCK(&zones);
+}
+
 static int load_config(int reload)
 {
 	struct ast_vm_user *current;
-	struct vm_zone *zcur;
 	struct ast_config *cfg, *ucfg;
 	char *cat;
 	struct ast_variable *var;
@@ -9590,17 +9611,14 @@
 	strcpy(listen_control_pause_key,DEFAULT_LISTEN_CONTROL_PAUSE_KEY);
 	strcpy(listen_control_restart_key,DEFAULT_LISTEN_CONTROL_RESTART_KEY);
 	strcpy(listen_control_stop_key,DEFAULT_LISTEN_CONTROL_STOP_KEY);
-	
-	AST_LIST_LOCK(&users);
-	while ((current = AST_LIST_REMOVE_HEAD(&users, list))) {
-		ast_set_flag(current, VM_ALLOCED);
-		free_user(current);
-	}
-
-	AST_LIST_LOCK(&zones);
-	while ((zcur = AST_LIST_REMOVE_HEAD(&zones, list))) 
-		free_zone(zcur);
-	AST_LIST_UNLOCK(&zones);
+
+	/* Free all the users structure */	
+	free_vm_users();
+
+	/* Free all the zones structure */
+	free_vm_zones();
+
+	AST_LIST_LOCK(&users);	
 
 	memset(ext_pass_cmd, 0, sizeof(ext_pass_cmd));
 	memset(ext_pass_check_cmd, 0, sizeof(ext_pass_check_cmd));
@@ -10262,6 +10280,9 @@
 	mwi_subscription_tps = ast_taskprocessor_unreference(mwi_subscription_tps);
 	ast_unload_realtime("voicemail");
 	ast_unload_realtime("voicemail_data");
+
+	free_vm_users();
+	free_vm_zones();
 	return res;
 }
 

Modified: team/seanbright/resolve-shadow-warnings/build_tools/make_version
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/build_tools/make_version?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/build_tools/make_version (original)
+++ team/seanbright/resolve-shadow-warnings/build_tools/make_version Wed Aug  6 19:05:03 2008
@@ -69,4 +69,6 @@
     else
 	echo SVN-${RESULT}-r${REV}${BASE:+-${BASE}}
     fi
+else
+  echo "UNKNOWN__and_probably_unsupported"
 fi

Modified: team/seanbright/resolve-shadow-warnings/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/seanbright/resolve-shadow-warnings/channels/chan_iax2.c?view=diff&rev=136296&r1=136295&r2=136296
==============================================================================
--- team/seanbright/resolve-shadow-warnings/channels/chan_iax2.c (original)
+++ team/seanbright/resolve-shadow-warnings/channels/chan_iax2.c Wed Aug  6 19:05:03 2008
@@ -6476,7 +6476,7 @@
 		struct ast_variable *var, *prev = NULL;
 		AST_LIST_HEAD(, ast_var_t) *varlist;
 		varlist = ast_calloc(1, sizeof(*varlist));
-		variablestore = ast_channel_datastore_alloc(&iax2_variable_datastore_info, NULL);
+		variablestore = ast_datastore_alloc(&iax2_variable_datastore_info, NULL);
 		if (variablestore && varlist && p->owner) {
 			variablestore->data = varlist;
 			variablestore->inheritance = DATASTORE_INHERIT_FOREVER;
@@ -6501,7 +6501,7 @@
 			if (p->owner)
 				ast_log(LOG_ERROR, "Memory allocation error while processing IAX2 variables\n");
 			if (variablestore)
-				ast_channel_datastore_free(variablestore);
+				ast_datastore_free(variablestore);
 			if (varlist)
 				ast_free(varlist);
 		}
@@ -7969,7 +7969,7 @@
 	struct ast_var_t *var;
 
 	if (!variablestore) {
-		variablestore = ast_channel_datastore_alloc(&iax2_variable_datastore_info, NULL);
+		variablestore = ast_datastore_alloc(&iax2_variable_datastore_info, NULL);
 		if (!variablestore) {
 			ast_log(LOG_ERROR, "Memory allocation error\n");
 			return -1;
@@ -8364,7 +8364,7 @@
 					struct ast_variable *var, *prev = NULL;
 					AST_LIST_HEAD(, ast_var_t) *varlist;
 					varlist = ast_calloc(1, sizeof(*varlist));
-					variablestore = ast_channel_datastore_alloc(&iax2_variable_datastore_info, NULL);
+					variablestore = ast_datastore_alloc(&iax2_variable_datastore_info, NULL);
 					if (variablestore && varlist) {
 						variablestore->data = varlist;
 						variablestore->inheritance = DATASTORE_INHERIT_FOREVER;
@@ -8388,7 +8388,7 @@
 					} else {
 						ast_log(LOG_ERROR, "Memory allocation error while processing IAX2 variables\n");
 						if (variablestore)

[... 2448 lines stripped ...]



More information about the svn-commits mailing list