[svn-commits] branch north/chan_skinny-fixup r29013 - in /team/north/chan_skinny-fixup: ./ ...

svn-commits at lists.digium.com svn-commits at lists.digium.com
Sat May 20 00:55:42 MST 2006


Author: north
Date: Sat May 20 02:55:41 2006
New Revision: 29013

URL: http://svn.digium.com/view/asterisk?rev=29013&view=rev
Log:
Merged revisions 28745,28747,28771,28789,28791-28792,28795-28796,28832-28834,28863,28894-28895,28897,28903,28934-28936,28967,28970 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/trunk

................
r28745 | tilghman | 2006-05-19 11:21:31 -0700 (Fri, 19 May 2006) | 2 lines

As requested by kpfleming, renaming messagecount to inboxcount and messagecount2 to messagecount.

................
r28747 | russell | 2006-05-19 11:54:21 -0700 (Fri, 19 May 2006) | 4 lines

add support for more refined ability to set install paths using the standard
options to configure such as --libdir, --sbindir, etc. All of the default paths
are still the same. (issue #7057, jcollie)

................
r28771 | russell | 2006-05-19 12:04:24 -0700 (Fri, 19 May 2006) | 14 lines

Merged revisions 28754 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r28754 | russell | 2006-05-19 15:01:17 -0400 (Fri, 19 May 2006) | 6 lines

This explicit poll is only needed on mac.  In fact, it breaks some systems
such as some versions of Fedora, causing 'asterisk -rx' to never exit.  This
has been tested on systems showing the asterisk -rx problem, as well as other
unaffected versions of linux, mac osx 10.4, and FreeBSD 6.
(issue #7071)

........

................
r28789 | russell | 2006-05-19 12:10:06 -0700 (Fri, 19 May 2006) | 3 lines

there is no reason to explicity specify -fomit-frame-pointer when building with
optimization enabled, because it is enabled automatically (issue #7108, casper)

................
r28791 | russell | 2006-05-19 12:19:27 -0700 (Fri, 19 May 2006) | 11 lines

Merged revisions 28790 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r28790 | russell | 2006-05-19 15:18:41 -0400 (Fri, 19 May 2006) | 3 lines

fix the build of smsq with -Werror.  I learned something new about format
strings from this patch!  (issue #7141, Mithraen)

........

................
r28792 | file | 2006-05-19 12:35:16 -0700 (Fri, 19 May 2006) | 2 lines

Fix tab completion when you just do a plain tab without entering anything, and also fix show application tab completion. (issue #7089 reported by blitzrage)

................
r28795 | kpfleming | 2006-05-19 12:43:33 -0700 (Fri, 19 May 2006) | 10 lines

Merged revisions 28794 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r28794 | kpfleming | 2006-05-19 14:39:55 -0500 (Fri, 19 May 2006) | 2 lines

use the specified 'subscribecontext' for a peer rather than the context found via the target domain (domain contexts are for calls, not for subscriptions) (issue #7122, reported by raarts)

........

................
r28796 | russell | 2006-05-19 12:46:10 -0700 (Fri, 19 May 2006) | 4 lines

we have to build local copies of aelflex.o, aelbison.o, and pbx_ael.o as well
to make sure aelparse doesn't use versions of these objects compiled with astmm
support (issue #7122)

................
r28832 | russell | 2006-05-19 15:51:44 -0700 (Fri, 19 May 2006) | 4 lines

Make the new behavior where the timestamp is checked on the call file before
deleting it optional, defaulting to the old behavior, where it is always
deleted (issue #6750, jcollie)

................
r28833 | kpfleming | 2006-05-19 15:55:02 -0700 (Fri, 19 May 2006) | 2 lines

let's use the proper variable here, instead of segfaulting (don't know how this worked for anyone at all)

................
r28834 | russell | 2006-05-19 15:55:09 -0700 (Fri, 19 May 2006) | 2 lines

allow chan_h323 to build (issue #7006, casper)

................
r28863 | kpfleming | 2006-05-19 16:08:47 -0700 (Fri, 19 May 2006) | 2 lines

attributes need trailing CR-LF

................
r28894 | russell | 2006-05-19 17:36:18 -0700 (Fri, 19 May 2006) | 5 lines

defaults.h must be listed as a dependency after the cleantest because if it
forces a make clean, it has to be regenerated.  This fixes the problem that
people have been seeing where the build would fail complaining about defaults.h
not being present.

................
r28895 | russell | 2006-05-19 17:41:36 -0700 (Fri, 19 May 2006) | 3 lines

fix the build of func_realtime and aelparse with MTX_PROFILE enabled
(issue #7187, #7188, casper)

................
r28897 | russell | 2006-05-19 17:57:04 -0700 (Fri, 19 May 2006) | 3 lines

if a hostname is not specified, connect over a unix socket instead of
connecting to localhost (issue #7145, Mithraen)

................
r28903 | kpfleming | 2006-05-19 18:01:20 -0700 (Fri, 19 May 2006) | 10 lines

Merged revisions 28896 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r28896 | kpfleming | 2006-05-19 19:55:31 -0500 (Fri, 19 May 2006) | 2 lines

don't try to predict where the compiler will place things on the stack... put them in the right place explicitly (issues #7029 and #7100, maybe others)

........

................
r28934 | russell | 2006-05-19 18:28:14 -0700 (Fri, 19 May 2006) | 3 lines

fix up another place where the code made assumptions about how space for
variables would be allocatted on the stack

................
r28935 | russell | 2006-05-19 18:29:08 -0700 (Fri, 19 May 2006) | 2 lines

various fixes regarding coding guidelines issues

................
r28936 | russell | 2006-05-19 18:35:12 -0700 (Fri, 19 May 2006) | 3 lines

remove an unused variable, and default the user to asterisk if not specified
in the config file (issue #7153, Mithraen)

................
r28967 | russell | 2006-05-19 19:32:54 -0700 (Fri, 19 May 2006) | 1 line


................
r28970 | kpfleming | 2006-05-19 19:51:53 -0700 (Fri, 19 May 2006) | 10 lines

Merged revisions 28968 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r28968 | kpfleming | 2006-05-19 21:35:53 -0500 (Fri, 19 May 2006) | 2 lines

don't allow queue member devices to ring longer than the total queue timeout (issue #6423, reported and patched by bcnit)

........

................

Modified:
    team/north/chan_skinny-fixup/   (props changed)
    team/north/chan_skinny-fixup/Makefile
    team/north/chan_skinny-fixup/UPGRADE.txt
    team/north/chan_skinny-fixup/acinclude.m4
    team/north/chan_skinny-fixup/app.c
    team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c
    team/north/chan_skinny-fixup/apps/app_queue.c
    team/north/chan_skinny-fixup/apps/app_sms.c
    team/north/chan_skinny-fixup/apps/app_voicemail.c
    team/north/chan_skinny-fixup/asterisk.c
    team/north/chan_skinny-fixup/cdr/cdr_pgsql.c
    team/north/chan_skinny-fixup/channels/chan_iax2.c
    team/north/chan_skinny-fixup/channels/chan_sip.c
    team/north/chan_skinny-fixup/channels/chan_skinny.c
    team/north/chan_skinny-fixup/channels/h323/Makefile
    team/north/chan_skinny-fixup/cli.c
    team/north/chan_skinny-fixup/configure
    team/north/chan_skinny-fixup/configure.ac
    team/north/chan_skinny-fixup/funcs/func_realtime.c
    team/north/chan_skinny-fixup/include/asterisk/app.h
    team/north/chan_skinny-fixup/makeopts.in
    team/north/chan_skinny-fixup/manager.c
    team/north/chan_skinny-fixup/pbx.c
    team/north/chan_skinny-fixup/pbx/pbx_spool.c
    team/north/chan_skinny-fixup/sample.call
    team/north/chan_skinny-fixup/utils/Makefile
    team/north/chan_skinny-fixup/utils/ael_main.c
    team/north/chan_skinny-fixup/utils/smsq.c

Propchange: team/north/chan_skinny-fixup/
------------------------------------------------------------------------------
Binary property 'branch-1.2-blocked' - no diff available.

Propchange: team/north/chan_skinny-fixup/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Propchange: team/north/chan_skinny-fixup/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Sat May 20 02:55:41 2006
@@ -1,1 +1,1 @@
-/trunk:1-28718
+/trunk:1-28989

Modified: team/north/chan_skinny-fixup/Makefile
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/Makefile?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/Makefile (original)
+++ team/north/chan_skinny-fixup/Makefile Sat May 20 02:55:41 2006
@@ -82,41 +82,27 @@
 # Define standard directories for various platforms
 # These apply if they are not redefined in asterisk.conf 
 ifeq ($(OSARCH),SunOS)
-  ASTETCDIR=$(INSTALL_PREFIX)/etc/opt/asterisk
-  ASTLIBDIR=$(INSTALL_PREFIX)/opt/asterisk/lib
-  ASTVARLIBDIR=$(INSTALL_PREFIX)/var/opt/asterisk/lib
-  ASTSPOOLDIR=$(INSTALL_PREFIX)/var/opt/asterisk/spool
-  ASTLOGDIR=$(INSTALL_PREFIX)/var/opt/asterisk/log
-  ASTHEADERDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/include/asterisk
-  ASTBINDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/bin
-  ASTSBINDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/sbin
-  ASTVARRUNDIR=$(INSTALL_PREFIX)/var/opt/asterisk/run
-  ASTMANDIR=$(INSTALL_PREFIX)/opt/asterisk/usr/share/man
+  ASTETCDIR=/etc/opt/asterisk
+  ASTLIBDIR=/opt/asterisk/lib
+  ASTVARLIBDIR=/var/opt/asterisk/lib
+  ASTSPOOLDIR=/var/opt/asterisk/spool
+  ASTLOGDIR=/var/opt/asterisk/log
+  ASTHEADERDIR=/opt/asterisk/usr/include/asterisk
+  ASTBINDIR=/opt/asterisk/usr/bin
+  ASTSBINDIR=/opt/asterisk/usr/sbin
+  ASTVARRUNDIR=/var/opt/asterisk/run
+  ASTMANDIR=/opt/asterisk/usr/share/man
 else
-ifeq ($(OSARCH),FreeBSD)
-  PREFIX?=/usr/local
-  ASTETCDIR=$(INSTALL_PREFIX)$(PREFIX)/etc/asterisk
-  ASTLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/lib/asterisk
-  ASTVARLIBDIR=$(INSTALL_PREFIX)$(PREFIX)/share/asterisk
-  ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
-  ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
-  ASTHEADERDIR=$(INSTALL_PREFIX)$(PREFIX)/include/asterisk
-  ASTBINDIR=$(INSTALL_PREFIX)$(PREFIX)/bin
-  ASTSBINDIR=$(INSTALL_PREFIX)$(PREFIX)/sbin
-  ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
-  ASTMANDIR=$(INSTALL_PREFIX)$(PREFIX)/man
-else
-  ASTETCDIR=$(INSTALL_PREFIX)/etc/asterisk
-  ASTLIBDIR=$(INSTALL_PREFIX)/usr/lib/asterisk
-  ASTVARLIBDIR=$(INSTALL_PREFIX)/var/lib/asterisk
-  ASTSPOOLDIR=$(INSTALL_PREFIX)/var/spool/asterisk
-  ASTLOGDIR=$(INSTALL_PREFIX)/var/log/asterisk
-  ASTHEADERDIR=$(INSTALL_PREFIX)/usr/include/asterisk
-  ASTBINDIR=$(INSTALL_PREFIX)/usr/bin
-  ASTSBINDIR=$(INSTALL_PREFIX)/usr/sbin
-  ASTVARRUNDIR=$(INSTALL_PREFIX)/var/run
-  ASTMANDIR=$(INSTALL_PREFIX)/usr/share/man
-endif
+  ASTETCDIR=$(sysconfdir)/asterisk
+  ASTLIBDIR=$(libdir)/asterisk
+  ASTVARLIBDIR=$(localstatedir)/lib/asterisk
+  ASTSPOOLDIR=$(localstatedir)/spool/asterisk
+  ASTLOGDIR=$(localstatedir)/log/asterisk
+  ASTHEADERDIR=$(includedir)/asterisk
+  ASTBINDIR=$(bindir)
+  ASTSBINDIR=$(sbindir)
+  ASTVARRUNDIR=$(localstatedir)/run
+  ASTMANDIR=$(mandir)
 endif
 ASTDATADIR?=$(ASTVARLIBDIR)
 
@@ -279,9 +265,6 @@
 endif
 
 ASTCFLAGS+=$(MALLOC_DEBUG)$(BUSYDETECT)$(OPTIONS)
-ifeq ($(findstring dont-optimize,$(MAKECMDGOALS)),)
-ASTCFLAGS+=-fomit-frame-pointer
-endif
 
 MOD_SUBDIRS=res channels pbx apps codecs formats cdr funcs
 OTHER_SUBDIRS=utils stdtime agi
@@ -384,7 +367,7 @@
 	@echo " +               make install                +"  
 	@echo " +-------------------------------------------+"  
 
-all: cleantest config.status menuselect.makeopts depend asterisk subdirs
+all: cleantest defaults.h config.status menuselect.makeopts depend asterisk subdirs
 
 config.status: configure
 	@CFLAGS="" ./configure

Modified: team/north/chan_skinny-fixup/UPGRADE.txt
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/UPGRADE.txt?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/UPGRADE.txt (original)
+++ team/north/chan_skinny-fixup/UPGRADE.txt Sat May 20 02:55:41 2006
@@ -107,6 +107,12 @@
   to specify which DTMF digits can be used to accept a recording and
   which digits can be used to cancel a recording.
 
+* ast_app_messagecount has been renamed to ast_app_inboxcount.  There is now a
+  new ast_app_messagecount function which takes a single context/mailbox/folder
+  mailbox specification and returns the message count for that folder only.
+  This addresses the deficiency of not being able to count the number of
+  messages in folders other than INBOX and Old.
+
 Manager:
 
 * After executing the 'status' manager action, the "Status" manager events

Modified: team/north/chan_skinny-fixup/acinclude.m4
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/acinclude.m4?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/acinclude.m4 (original)
+++ team/north/chan_skinny-fixup/acinclude.m4 Sat May 20 02:55:41 2006
@@ -20,17 +20,17 @@
 PBX_LIB$1=0
 
 if test "${USE_$1}" != "no"; then
-   libdir=""
+   pbxlibdir=""
    if test "x${$1_DIR}" != "x"; then
-      libdir="-L${$1_DIR}/lib"
+      pbxlibdir="-L${$1_DIR}/lib"
    fi
-   AC_CHECK_LIB([$1], [$2], [:], [], ${libdir} $6)
+   AC_CHECK_LIB([$1], [$2], [:], [], ${pbxlibdir} $6)
 
    if test "${ac_cv_lib_$1_$2}" = "yes"; then
       $1_LIB="-l$1 $6"
       $4_HEADER_FOUND="1"
       if test "x${$1_DIR}" != "x"; then
-         $1_LIB="${libdir} ${$1_LIB}"
+         $1_LIB="${pbxlibdir} ${$1_LIB}"
 	 $1_INCLUDE="-I${$1_DIR}/include"
 	 if test "x$3" != "x" ; then
 	    AC_CHECK_HEADER([${$1_DIR}/include/$3], [$4_HEADER_FOUND=1], [$4_HEADER_FOUND=0] )

Modified: team/north/chan_skinny-fixup/app.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/app.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/app.c (original)
+++ team/north/chan_skinny-fixup/app.c Sat May 20 02:55:41 2006
@@ -145,23 +145,23 @@
 }
 
 static int (*ast_has_voicemail_func)(const char *mailbox, const char *folder) = NULL;
-static int (*ast_messagecount_func)(const char *mailbox, int *newmsgs, int *oldmsgs) = NULL;
-static int (*ast_messagecount2_func)(const char *context, const char *mailbox, const char *folder) = NULL;
+static int (*ast_inboxcount_func)(const char *mailbox, int *newmsgs, int *oldmsgs) = NULL;
+static int (*ast_messagecount_func)(const char *context, const char *mailbox, const char *folder) = NULL;
 
 void ast_install_vm_functions(int (*has_voicemail_func)(const char *mailbox, const char *folder),
-			      int (*messagecount_func)(const char *mailbox, int *newmsgs, int *oldmsgs),
-			      int (*messagecount2_func)(const char *context, const char *mailbox, const char *folder))
+			      int (*inboxcount_func)(const char *mailbox, int *newmsgs, int *oldmsgs),
+			      int (*messagecount_func)(const char *context, const char *mailbox, const char *folder))
 {
 	ast_has_voicemail_func = has_voicemail_func;
+	ast_inboxcount_func = inboxcount_func;
 	ast_messagecount_func = messagecount_func;
-	ast_messagecount2_func = messagecount2_func;
 }
 
 void ast_uninstall_vm_functions(void)
 {
 	ast_has_voicemail_func = NULL;
+	ast_inboxcount_func = NULL;
 	ast_messagecount_func = NULL;
-	ast_messagecount2_func = NULL;
 }
 
 int ast_app_has_voicemail(const char *mailbox, const char *folder)
@@ -178,15 +178,15 @@
 }
 
 
-int ast_app_messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
+int ast_app_inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
 {
 	static int warned = 0;
 	if (newmsgs)
 		*newmsgs = 0;
 	if (oldmsgs)
 		*oldmsgs = 0;
-	if (ast_messagecount_func)
-		return ast_messagecount_func(mailbox, newmsgs, oldmsgs);
+	if (ast_inboxcount_func)
+		return ast_inboxcount_func(mailbox, newmsgs, oldmsgs);
 
 	if (!warned && (option_verbose > 2)) {
 		warned++;
@@ -196,11 +196,11 @@
 	return 0;
 }
 
-int ast_app_messagecount2(const char *context, const char *mailbox, const char *folder)
+int ast_app_messagecount(const char *context, const char *mailbox, const char *folder)
 {
 	static int warned = 0;
-	if (ast_messagecount2_func)
-		return ast_messagecount2_func(context, mailbox, folder);
+	if (ast_messagecount_func)
+		return ast_messagecount_func(context, mailbox, folder);
 
 	if (!warned && (option_verbose > 2)) {
 		warned++;

Modified: team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c (original)
+++ team/north/chan_skinny-fixup/apps/app_hasnewvoicemail.c Sat May 20 02:55:41 2006
@@ -128,7 +128,7 @@
 			priority_jump = 1;
 	}
 
-	vmcount = ast_app_messagecount2(context, vmbox, vmfolder);
+	vmcount = ast_app_messagecount(context, vmbox, vmfolder);
 	/* Set the count in the channel variable */
 	if (varname) {
 		snprintf(tmp, sizeof(tmp), "%d", vmcount);
@@ -177,7 +177,7 @@
 		args.folder = "INBOX";
 	}
 
-	snprintf(buf, len, "%d", ast_app_messagecount2(context, args.vmbox, args.folder));
+	snprintf(buf, len, "%d", ast_app_messagecount(context, args.vmbox, args.folder));
 
 	LOCAL_USER_REMOVE(u);
 	

Modified: team/north/chan_skinny-fixup/apps/app_queue.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_queue.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_queue.c (original)
+++ team/north/chan_skinny-fixup/apps/app_queue.c Sat May 20 02:55:41 2006
@@ -2201,7 +2201,10 @@
 			free(tmp);
 		}
 	}
-	to = (qe->parent->timeout) ? qe->parent->timeout * 1000 : -1;
+	if (qe->expire && (!qe->parent->timeout || (qe->expire - now) <= qe->parent->timeout))
+		to = (qe->expire - now) * 1000;
+	else
+		to = (qe->parent->timeout) ? qe->parent->timeout * 1000 : -1;
 	ring_one(qe, outgoing, &numbusies);
 	ast_mutex_unlock(&qe->parent->lock);
 	if (use_weight) 

Modified: team/north/chan_skinny-fixup/apps/app_sms.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_sms.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_sms.c (original)
+++ team/north/chan_skinny-fixup/apps/app_sms.c Sat May 20 02:55:41 2006
@@ -1176,14 +1176,13 @@
 static int sms_generate (struct ast_channel *chan, void *data, int len, int samples)
 {
 	struct ast_frame f = { 0 };
-	unsigned char waste[AST_FRIENDLY_OFFSET];
 #define MAXSAMPLES (800)
 #ifdef OUTALAW
-	unsigned char buf[MAXSAMPLES];
+	unsigned char *buf;
 #else
-	signed short buf[MAXSAMPLES];
+	short *buf;
 #endif
-#define SAMPLE2LEN (sizeof (buf[0]))
+#define SAMPLE2LEN sizeof(*buf)
 	sms_t *h = data;
 	int i;
 
@@ -1192,9 +1191,9 @@
 			 MAXSAMPLES, samples);
 		samples = MAXSAMPLES;
 	}
-	len = samples * SAMPLE2LEN;
-
-	waste[0] = 0;				 /* make compiler happy */
+	len = samples * SAMPLE2LEN + AST_FRIENDLY_OFFSET;
+	buf = alloca(len);
+
 	f.frametype = AST_FRAME_VOICE;
 #ifdef OUTALAW
 	f.subclass = AST_FORMAT_ALAW;
@@ -1204,7 +1203,7 @@
 	f.datalen = len;
 	f.offset = AST_FRIENDLY_OFFSET;
 	f.mallocd = 0;
-	f.data = buf;
+	f.data = buf + AST_FRIENDLY_OFFSET;
 	f.samples = samples;
 	f.src = "app_sms";
 	/* create a buffer containing the digital sms pattern */

Modified: team/north/chan_skinny-fixup/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/apps/app_voicemail.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/apps/app_voicemail.c (original)
+++ team/north/chan_skinny-fixup/apps/app_voicemail.c Sat May 20 02:55:41 2006
@@ -2012,7 +2012,7 @@
 }
 
 #ifdef USE_ODBC_STORAGE
-static int messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
+static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
 {
 	int x = -1;
 	int res;
@@ -2127,7 +2127,7 @@
 	return x;
 }
 
-static int messagecount2(const char *context, const char *mailbox, const char *folder)
+static int messagecount(const char *context, const char *mailbox, const char *folder)
 {
 	struct odbc_obj *obj = NULL;
 	int nummsgs = 0;
@@ -2193,7 +2193,7 @@
 	else
 		context = "default";
 
-	if (messagecount2(context, tmp, folder))
+	if (messagecount(context, tmp, folder))
 		return 1;
 	else
 		return 0;
@@ -2201,42 +2201,20 @@
 
 #else
 
-static int __has_voicemail(const char *mailbox, const char *folder, int shortcircuit)
+static int __has_voicemail(const char *context, const char *mailbox, const char *folder, int shortcircuit)
 {
 	DIR *dir;
 	struct dirent *de;
 	char fn[256];
-	char tmp[256]="";
-	char *mb, *cur;
-	char *context;
 	int ret = 0;
 	if (!folder)
 		folder = "INBOX";
 	/* If no mailbox, return immediately */
 	if (ast_strlen_zero(mailbox))
 		return 0;
-	if (strchr(mailbox, ',')) {
-		ast_copy_string(tmp, mailbox, sizeof(tmp));
-		mb = tmp;
-		ret = 0;
-		while((cur = strsep(&mb, ","))) {
-			if (!ast_strlen_zero(cur)) {
-				if ((ret += __has_voicemail(cur, folder, shortcircuit))) {
-					if (shortcircuit)
-						return 1; 
-				}
-			}
-		}
-		return ret;
-	}
-	ast_copy_string(tmp, mailbox, sizeof(tmp));
-	context = strchr(tmp, '@');
-	if (context) {
-		*context = '\0';
-		context++;
-	} else
+	if (!context)
 		context = "default";
-	snprintf(fn, sizeof(fn), "%s%s/%s/%s", VM_SPOOL_DIR, context, tmp, folder);
+	snprintf(fn, sizeof(fn), "%s%s/%s/%s", VM_SPOOL_DIR, context, mailbox, folder);
 	dir = opendir(fn);
 	if (!dir)
 		return 0;
@@ -2255,21 +2233,26 @@
 
 static int has_voicemail(const char *mailbox, const char *folder)
 {
-	return __has_voicemail(mailbox, folder, 1);
-}
-
-static int messagecount2(const char *context, const char *mailbox, const char *folder)
-{
-	char tmp[256];
-	snprintf(tmp, sizeof(tmp), "%s@%s", mailbox, context);
-	return __has_voicemail(tmp, folder, 0);
-}
-
-static int messagecount(const char *mailbox, int *newmsgs, int *oldmsgs)
-{
-	DIR *dir;
-	struct dirent *de;
-	char fn[256];
+	char tmp[256], *tmp2 = tmp, *mbox, *context;
+	ast_copy_string(tmp, mailbox, sizeof(tmp));
+	while ((mbox = strsep(&tmp2, ","))) {
+		if ((context = strchr(mbox, '@')))
+			*context++ = '\0';
+		else
+			context = "default";
+		if (__has_voicemail(context, mbox, folder, 1))
+			return 1;
+	}
+	return 0;
+}
+
+static int messagecount(const char *context, const char *mailbox, const char *folder)
+{
+	return __has_voicemail(context, mailbox, folder, 0);
+}
+
+static int inboxcount(const char *mailbox, int *newmsgs, int *oldmsgs)
+{
 	char tmp[256];
 	char *context;
 
@@ -2288,7 +2271,7 @@
 		mb = tmp;
 		while((cur = strsep(&mb, ", "))) {
 			if (!ast_strlen_zero(cur)) {
-				if (messagecount(cur, newmsgs ? &tmpnew : NULL, oldmsgs ? &tmpold : NULL))
+				if (inboxcount(cur, newmsgs ? &tmpnew : NULL, oldmsgs ? &tmpold : NULL))
 					return -1;
 				else {
 					if (newmsgs)
@@ -2307,32 +2290,10 @@
 		context++;
 	} else
 		context = "default";
-	if (newmsgs) {
-		snprintf(fn, sizeof(fn), "%s%s/%s/INBOX", VM_SPOOL_DIR, context, tmp);
-		dir = opendir(fn);
-		if (dir) {
-			while ((de = readdir(dir))) {
-				if ((strlen(de->d_name) > 3) && !strncasecmp(de->d_name, "msg", 3) &&
-					!strcasecmp(de->d_name + strlen(de->d_name) - 3, "txt"))
-						(*newmsgs)++;
-					
-			}
-			closedir(dir);
-		}
-	}
-	if (oldmsgs) {
-		snprintf(fn, sizeof(fn), "%s%s/%s/Old", VM_SPOOL_DIR, context, tmp);
-		dir = opendir(fn);
-		if (dir) {
-			while ((de = readdir(dir))) {
-				if ((strlen(de->d_name) > 3) && !strncasecmp(de->d_name, "msg", 3) &&
-					!strcasecmp(de->d_name + strlen(de->d_name) - 3, "txt"))
-						(*oldmsgs)++;
-					
-			}
-			closedir(dir);
-		}
-	}
+	if (newmsgs)
+		*newmsgs = __has_voicemail(context, tmp, "INBOX", 0);
+	if (oldmsgs)
+		*oldmsgs = __has_voicemail(context, tmp, "Old", 0);
 	return 0;
 }
 
@@ -2410,7 +2371,7 @@
 #else
 	if (!ast_strlen_zero(externnotify)) {
 #endif
-		if (messagecount(ext_context, &newvoicemails, &oldvoicemails)) {
+		if (inboxcount(ext_context, &newvoicemails, &oldvoicemails)) {
 			ast_log(LOG_ERROR, "Problem in calculating number of voicemail messages available for extension %s\n", extension);
 		} else {
 			snprintf(arguments, sizeof(arguments), "%s %s %s %d&", externnotify, context, extension, newvoicemails);
@@ -3417,7 +3378,7 @@
 
 	/* Leave voicemail for someone */
 	if (ast_app_has_voicemail(ext_context, NULL)) {
-		ast_app_messagecount(ext_context, &newmsgs, &oldmsgs);
+		ast_app_inboxcount(ext_context, &newmsgs, &oldmsgs);
 	}
 	manager_event(EVENT_FLAG_CALL, "MessageWaiting", "Mailbox: %s@%s\r\nWaiting: %d\r\nNew: %d\r\nOld: %d\r\n", vmu->mailbox, vmu->context, ast_app_has_voicemail(ext_context, NULL), newmsgs, oldmsgs);
 	run_externnotify(vmu->context, vmu->mailbox);
@@ -6654,7 +6615,7 @@
 	/* compute the location of the voicemail spool directory */
 	snprintf(VM_SPOOL_DIR, sizeof(VM_SPOOL_DIR), "%s/voicemail/", ast_config_AST_SPOOL_DIR);
 
-	ast_install_vm_functions(has_voicemail, messagecount, messagecount2);
+	ast_install_vm_functions(has_voicemail, inboxcount, messagecount);
 
 #if defined(USE_ODBC_STORAGE) && !defined(EXTENDED_ODBC_STORAGE)
 	ast_log(LOG_WARNING, "The current ODBC storage table format will be changed soon."

Modified: team/north/chan_skinny-fixup/asterisk.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/asterisk.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/asterisk.c (original)
+++ team/north/chan_skinny-fixup/asterisk.c Sat May 20 02:55:41 2006
@@ -2027,13 +2027,17 @@
 
 	if (ast_opt_exec && data) {  /* hack to print output then exit if asterisk -rx is used */
 		char tempchar;
+#ifdef __Darwin__
 		struct pollfd fds[0];
 		fds[0].fd = ast_consock;
 		fds[0].events = POLLIN;
 		fds[0].revents = 0;
-		while(poll(fds, 1, 100) > 0) {
+		while (poll(fds, 1, 100) > 0) {
 			ast_el_read_char(el, &tempchar);
 		}
+#else
+		while (!ast_el_read_char(el, &tempchar));
+#endif
 		return;
 	}
 	for (;;) {

Modified: team/north/chan_skinny-fixup/cdr/cdr_pgsql.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/cdr/cdr_pgsql.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/cdr/cdr_pgsql.c (original)
+++ team/north/chan_skinny-fixup/cdr/cdr_pgsql.c Sat May 20 02:55:41 2006
@@ -63,7 +63,7 @@
 static char *desc = "PostgreSQL CDR Backend";
 static char *name = "pgsql";
 static char *config = "cdr_pgsql.conf";
-static char *pghostname = NULL, *pgdbname = NULL, *pgdbuser = NULL, *pgpassword = NULL, *pgdbsock = NULL, *pgdbport = NULL, *table = NULL;
+static char *pghostname = NULL, *pgdbname = NULL, *pgdbuser = NULL, *pgpassword = NULL, *pgdbport = NULL, *table = NULL;
 static int connected = 0;
 
 AST_MUTEX_DEFINE_STATIC(pgsql_lock);
@@ -195,8 +195,6 @@
 		free(pgdbname);
 	if (pgdbuser)
 		free(pgdbuser);
-	if (pgdbsock)
-		free(pgdbsock);
 	if (pgpassword)
 		free(pgpassword);
 	if (pgdbport)
@@ -209,88 +207,67 @@
 
 static int process_my_load_module(struct ast_config *cfg)
 {
-	int res;
 	struct ast_variable *var;
         char *pgerror;
 	char *tmp;
 
-	var = ast_variable_browse(cfg, "global");
-	if (!var) {
-		/* nothing configured */
+	if (!(var = ast_variable_browse(cfg, "global")))
 		return 0;
-	}
-
-	tmp = ast_variable_retrieve(cfg,"global","hostname");
-	if (tmp == NULL) {
-		ast_log(LOG_WARNING,"PostgreSQL server hostname not specified.  Assuming localhost\n");
-		tmp = "localhost";
-	}
-	pghostname = strdup(tmp);
-	if (pghostname == NULL) {
-		ast_log(LOG_ERROR,"Out of memory error.\n");
-		return -1;
-	}
-
-	tmp = ast_variable_retrieve(cfg,"global","dbname");
-	if (tmp == NULL) {
+
+	if (!(tmp = ast_variable_retrieve(cfg,"global","hostname"))) {
+		ast_log(LOG_WARNING,"PostgreSQL server hostname not specified.  Assuming unix socket connection\n");
+		tmp = "";	/* connect via UNIX-socket by default */
+	}
+	
+	if (!(pghostname = ast_strdup(tmp)))
+		return -1;
+
+	if (!(tmp = ast_variable_retrieve(cfg, "global", "dbname"))) {
 		ast_log(LOG_WARNING,"PostgreSQL database not specified.  Assuming asterisk\n");
 		tmp = "asteriskcdrdb";
 	}
-	pgdbname = strdup(tmp);
-	if (pgdbname == NULL) {
-		ast_log(LOG_ERROR,"Out of memory error.\n");
-		return -1;
-	}
-
-	tmp = ast_variable_retrieve(cfg,"global","user");
-	if (tmp == NULL) {
-		ast_log(LOG_WARNING,"PostgreSQL database user not specified.  Assuming root\n");
-		tmp = "root";
-	}
-	pgdbuser = strdup(tmp);
-	if (pgdbuser == NULL) {
-		ast_log(LOG_ERROR,"Out of memory error.\n");
-		return -1;
-	}
-
-	tmp = ast_variable_retrieve(cfg,"global","password");
-	if (tmp == NULL) {
+
+	if (!(pgdbname = ast_strdup(tmp)))
+		return -1;
+
+	if (!(tmp = ast_variable_retrieve(cfg, "global", "user"))) {
+		ast_log(LOG_WARNING,"PostgreSQL database user not specified.  Assuming asterisk\n");
+		tmp = "asterisk";
+	}
+
+	if (!(pgdbuser = ast_strdup(tmp)))
+		return -1;
+
+	if (!(tmp = ast_variable_retrieve(cfg, "global", "password"))) {
 		ast_log(LOG_WARNING,"PostgreSQL database password not specified.  Assuming blank\n");
 		tmp = "";
 	}
-	pgpassword = strdup(tmp);
-	if (pgpassword == NULL) {
-		ast_log(LOG_ERROR,"Out of memory error.\n");
-		return -1;
-	}
-
-	tmp = ast_variable_retrieve(cfg,"global","port");
-	if (tmp == NULL) {
+
+	if (!(pgpassword = ast_strdup(tmp)))
+		return -1;
+
+	if (!(tmp = ast_variable_retrieve(cfg,"global","port"))) {
 		ast_log(LOG_WARNING,"PostgreSQL database port not specified.  Using default 5432.\n");
 		tmp = "5432";
 	}
-	pgdbport = strdup(tmp);
-	if (pgdbport == NULL) {
-		ast_log(LOG_ERROR,"Out of memory error.\n");
-		return -1;
-	}
-
-	tmp = ast_variable_retrieve(cfg,"global","table");
-	if (tmp == NULL) {
+
+	if (!(pgdbport = ast_strdup(tmp)))
+		return -1;
+
+	if (!(tmp = ast_variable_retrieve(cfg, "global", "table"))) {
 		ast_log(LOG_WARNING,"CDR table not specified.  Assuming cdr\n");
 		tmp = "cdr";
 	}
-	table = strdup(tmp);
-	if (table == NULL) {
-		ast_log(LOG_ERROR,"Out of memory error.\n");
-		return -1;
-	}
+
+	if (!(table = ast_strdup(tmp)))
+		return -1;
 
 	if (option_debug) {
-		ast_log(LOG_DEBUG, "cdr_pgsql: got hostname of %s\n", pghostname);
+	    	if (ast_strlen_zero(pghostname))
+			ast_log(LOG_DEBUG, "cdr_pgsql: using default unix socket\n");
+		else
+			ast_log(LOG_DEBUG, "cdr_pgsql: got hostname of %s\n", pghostname);
 		ast_log(LOG_DEBUG, "cdr_pgsql: got port of %s\n", pgdbport);
-		if (pgdbsock)
-			ast_log(LOG_DEBUG, "cdr_pgsql: got sock file of %s\n", pgdbsock);
 		ast_log(LOG_DEBUG, "cdr_pgsql: got user of %s\n", pgdbuser);
 		ast_log(LOG_DEBUG, "cdr_pgsql: got dbname of %s\n", pgdbname);
 		ast_log(LOG_DEBUG, "cdr_pgsql: got password of %s\n", pgpassword);
@@ -309,24 +286,22 @@
 		connected = 0;
 	}
 
-	res = ast_cdr_register(name, desc, pgsql_log);
-	if (res) {
-		ast_log(LOG_ERROR, "Unable to register PGSQL CDR handling\n");
-	}
-	return res;
+	return ast_cdr_register(name, desc, pgsql_log);
 }
 
 static int my_load_module(void)
 {
 	struct ast_config *cfg;
 	int res;
-	cfg = ast_config_load(config);
-	if (!cfg) {
+
+	if (!(cfg = ast_config_load(config))) {
 		ast_log(LOG_WARNING, "Unable to load config for PostgreSQL CDR's: %s\n", config);
 		return 0;
 	}
+
 	res = process_my_load_module(cfg);
 	ast_config_destroy(cfg);
+
 	return res;
 }
 

Modified: team/north/chan_skinny-fixup/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/north/chan_skinny-fixup/channels/chan_iax2.c?rev=29013&r1=29012&r2=29013&view=diff
==============================================================================
--- team/north/chan_skinny-fixup/channels/chan_iax2.c (original)
+++ team/north/chan_skinny-fixup/channels/chan_iax2.c Sat May 20 02:55:41 2006
@@ -5677,7 +5677,7 @@
 		iax_ie_append_addr(&ied, IAX_IE_APPARENT_ADDR, &p->addr);
 		if (!ast_strlen_zero(p->mailbox)) {
 			int new, old;
-			ast_app_messagecount(p->mailbox, &new, &old);
+			ast_app_inboxcount(p->mailbox, &new, &old);
 			if (new > 255)
 				new = 255;
 			if (old > 255)
@@ -6282,8 +6282,7 @@
 	struct ast_iax2_meta_trunk_hdr *mth;
 	struct ast_iax2_meta_trunk_entry *mte;
 	struct ast_iax2_meta_trunk_mini *mtm;
-	char dblbuf[4096];	/* Declaration of dblbuf must immediately *preceed* fr  on the stack */
-	struct iax_frame fr;
+	struct iax_frame *fr;
 	struct iax_frame *cur;
 	char iabuf[INET_ADDRSTRLEN];
 	struct ast_frame f;
@@ -6306,8 +6305,9 @@
 	struct ast_codec_pref pref;
 	char *using_prefs = "mine";
 
-	dblbuf[0] = 0;	/* Keep GCC from whining */
-	fr.callno = 0;
+	/* allocate an iax_frame with 4096 bytes of data buffer */
+	fr = alloca(sizeof(*fr) + 4096);
+	fr->callno = 0;
 
 	/* Copy frequently used parameters to the stack */
 	res = thread->iores;
@@ -6320,7 +6320,7 @@
 	}
 	if ((vh->zeros == 0) && (ntohs(vh->callno) & 0x8000)) {
 		/* This is a video frame, get call number */
-		fr.callno = find_callno(ntohs(vh->callno) & ~0x8000, dcallno, &sin, new, 1, fd);
+		fr->callno = find_callno(ntohs(vh->callno) & ~0x8000, dcallno, &sin, new, 1, fd);
 		minivid = 1;
 	} else if (meta->zeros == 0) {
 		unsigned char metatype;
@@ -6371,16 +6371,16 @@
 				/* Stop if we don't have enough data */
 				if (len > res)
 					break;
-				fr.callno = find_callno(callno & ~IAX_FLAG_FULL, 0, &sin, NEW_PREVENT, 1, fd);
-				if (fr.callno) {
-					ast_mutex_lock(&iaxsl[fr.callno]);
+				fr->callno = find_callno(callno & ~IAX_FLAG_FULL, 0, &sin, NEW_PREVENT, 1, fd);
+				if (fr->callno) {
+					ast_mutex_lock(&iaxsl[fr->callno]);
 					/* If it's a valid call, deliver the contents.  If not, we
 					   drop it, since we don't have a scallno to use for an INVAL */
 					/* Process as a mini frame */
 					f.frametype = AST_FRAME_VOICE;
-					if (iaxs[fr.callno]) {
-						if (iaxs[fr.callno]->voiceformat > 0) {
-							f.subclass = iaxs[fr.callno]->voiceformat;
+					if (iaxs[fr->callno]) {
+						if (iaxs[fr->callno]->voiceformat > 0) {
+							f.subclass = iaxs[fr->callno]->voiceformat;
 							f.datalen = len;
 							if (f.datalen >= 0) {
 								if (f.datalen)
@@ -6388,11 +6388,11 @@
 								else
 									f.data = NULL;
 								if(trunked_ts) {
-									fr.ts = (iaxs[fr.callno]->last & 0xFFFF0000L) | (trunked_ts & 0xffff);
+									fr->ts = (iaxs[fr->callno]->last & 0xFFFF0000L) | (trunked_ts & 0xffff);
 								} else
-									fr.ts = fix_peerts(&rxtrunktime, fr.callno, ts);
+									fr->ts = fix_peerts(&rxtrunktime, fr->callno, ts);
 								/* Don't pass any packets until we're started */
-								if (ast_test_flag(&iaxs[fr.callno]->state, IAX_STATE_STARTED)) {
+								if (ast_test_flag(&iaxs[fr->callno]->state, IAX_STATE_STARTED)) {
 									/* Common things */
 									f.src = "IAX2";
 									f.mallocd = 0;
@@ -6401,28 +6401,28 @@
 										f.samples = ast_codec_get_samples(&f);
 									else
 										f.samples = 0;
-									fr.outoforder = 0;
-									iax_frame_wrap(&fr, &f);
+									fr->outoforder = 0;
+									iax_frame_wrap(fr, &f);
 #ifdef BRIDGE_OPTIMIZATION
-									if (iaxs[fr.callno]->bridgecallno) {
+									if (iaxs[fr->callno]->bridgecallno) {
 										forward_delivery(&fr);
 									} else {
 										duped_fr = iaxfrdup2(&fr);
 										if (duped_fr) {
-											schedule_delivery(duped_fr, updatehistory, 1, &fr.ts);
+											schedule_delivery(duped_fr, updatehistory, 1, &fr->ts);
 										}
 									}
 #else
-									duped_fr = iaxfrdup2(&fr);
+									duped_fr = iaxfrdup2(fr);
 									if (duped_fr) {
-										schedule_delivery(duped_fr, updatehistory, 1, &fr.ts);
+										schedule_delivery(duped_fr, updatehistory, 1, &fr->ts);
 									}
 #endif
-									if (iaxs[fr.callno]->last < fr.ts) {
-										iaxs[fr.callno]->last = fr.ts;
+									if (iaxs[fr->callno]->last < fr->ts) {
+										iaxs[fr->callno]->last = fr->ts;
 #if 1
 										if (option_debug && iaxdebug)
-											ast_log(LOG_DEBUG, "For call=%d, set last=%d\n", fr.callno, fr.ts);
+											ast_log(LOG_DEBUG, "For call=%d, set last=%d\n", fr->callno, fr->ts);
 #endif
 									}
 								}
@@ -6431,10 +6431,10 @@
 							}
 						} else {
 							ast_log(LOG_WARNING, "Received trunked frame before first full voice frame\n ");
-							iax2_vnak(fr.callno);
+							iax2_vnak(fr->callno);
 						}
 					}
-					ast_mutex_unlock(&iaxsl[fr.callno]);
+					ast_mutex_unlock(&iaxsl[fr->callno]);
 				}
 				ptr += len;
 				res -= len;
@@ -6467,13 +6467,13 @@
 		f.subclass = 0;
 	}
 
-	if (!fr.callno)
-		fr.callno = find_callno(ntohs(mh->callno) & ~IAX_FLAG_FULL, dcallno, &sin, new, 1, fd);
-
-	if (fr.callno > 0) 
-		ast_mutex_lock(&iaxsl[fr.callno]);
-
-	if (!fr.callno || !iaxs[fr.callno]) {
+	if (!fr->callno)
+		fr->callno = find_callno(ntohs(mh->callno) & ~IAX_FLAG_FULL, dcallno, &sin, new, 1, fd);
+
+	if (fr->callno > 0) 
+		ast_mutex_lock(&iaxsl[fr->callno]);
+
+	if (!fr->callno || !iaxs[fr->callno]) {
 		/* A call arrived for a nonexistent destination.  Unless it's an "inval"
 		   frame, reply with an inval */
 		if (ntohs(mh->callno) & IAX_FLAG_FULL) {
@@ -6486,14 +6486,14 @@
 				raw_hangup(&sin, ntohs(fh->dcallno) & ~IAX_FLAG_RETRANS, ntohs(mh->callno) & ~IAX_FLAG_FULL,
 				fd);
 		}
-		if (fr.callno > 0) 
-			ast_mutex_unlock(&iaxsl[fr.callno]);
+		if (fr->callno > 0) 
+			ast_mutex_unlock(&iaxsl[fr->callno]);
 		return 1;
 	}
-	if (ast_test_flag(iaxs[fr.callno], IAX_ENCRYPTED)) {
-		if (decrypt_frame(fr.callno, fh, &f, &res)) {
+	if (ast_test_flag(iaxs[fr->callno], IAX_ENCRYPTED)) {
+		if (decrypt_frame(fr->callno, fh, &f, &res)) {
 			ast_log(LOG_NOTICE, "Packet Decrypt Failed!\n");
-			ast_mutex_unlock(&iaxsl[fr.callno]);
+			ast_mutex_unlock(&iaxsl[fr->callno]);
 			return 1;
 		}
 #ifdef DEBUG_SUPPORT
@@ -6503,24 +6503,24 @@
 	}
 
 	/* count this frame */
-	iaxs[fr.callno]->frames_received++;
-
-	if (!inaddrcmp(&sin, &iaxs[fr.callno]->addr) && !minivid &&
+	iaxs[fr->callno]->frames_received++;
+
+	if (!inaddrcmp(&sin, &iaxs[fr->callno]->addr) && !minivid &&
 		f.subclass != IAX_COMMAND_TXCNT &&		/* for attended transfer */
 		f.subclass != IAX_COMMAND_TXACC)		/* for attended transfer */
-		iaxs[fr.callno]->peercallno = (unsigned short)(ntohs(mh->callno) & ~IAX_FLAG_FULL);
+		iaxs[fr->callno]->peercallno = (unsigned short)(ntohs(mh->callno) & ~IAX_FLAG_FULL);
 	if (ntohs(mh->callno) & IAX_FLAG_FULL) {
 		if (option_debug  && iaxdebug)
 			ast_log(LOG_DEBUG, "Received packet %d, (%d, %d)\n", fh->oseqno, f.frametype, f.subclass);
 		/* Check if it's out of order (and not an ACK or INVAL) */
-		fr.oseqno = fh->oseqno;
-		fr.iseqno = fh->iseqno;
-		fr.ts = ntohl(fh->ts);
+		fr->oseqno = fh->oseqno;
+		fr->iseqno = fh->iseqno;
+		fr->ts = ntohl(fh->ts);
 #ifdef IAXTESTS
 		if (test_resync) {
 			if (option_debug)
-				ast_log(LOG_DEBUG, "Simulating frame ts resync, was %u now %u\n", fr.ts, fr.ts + test_resync);
-			fr.ts += test_resync;
+				ast_log(LOG_DEBUG, "Simulating frame ts resync, was %u now %u\n", fr->ts, fr->ts + test_resync);
+			fr->ts += test_resync;
 		}
 #endif /* IAXTESTS */
 #if 0
@@ -6533,8 +6533,8 @@
 #endif
 		if ((ntohs(fh->dcallno) & IAX_FLAG_RETRANS) || (f.frametype != AST_FRAME_VOICE))
 			updatehistory = 0;
-		if ((iaxs[fr.callno]->iseqno != fr.oseqno) &&
-			(iaxs[fr.callno]->iseqno ||
+		if ((iaxs[fr->callno]->iseqno != fr->oseqno) &&
+			(iaxs[fr->callno]->iseqno ||
 				((f.subclass != IAX_COMMAND_TXCNT) &&
 				(f.subclass != IAX_COMMAND_TXREADY) &&		/* for attended transfer */
 				(f.subclass != IAX_COMMAND_TXREL) &&		/* for attended transfer */
@@ -6554,8 +6554,8 @@
 			 	/* If it's not an ACK packet, it's out of order. */
 				if (option_debug)

[... 2680 lines stripped ...]


More information about the svn-commits mailing list