[asterisk-commits] seanbright: branch seanbright/solaris-10-1.4 r236637 - in /team/seanbright/so...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Dec 28 10:06:44 CST 2009


Author: seanbright
Date: Mon Dec 28 10:06:42 2009
New Revision: 236637

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=236637
Log:
Merged revisions 235940,236062,236184,236261,236357,236433,236509,236585 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r235940 | jpeeler | 2009-12-21 14:43:41 -0500 (Mon, 21 Dec 2009) | 13 lines
  
  Change Monitor to not assume file to write to does not contain pathing.
  
  227944 changed the fname_base argument to always append the configured monitor
  path. This change was necessary to properly compare files for uniqueness. 
  If a full path is given though, nothing needs to be appended and that is
  handled correctly now.
  
  (closes issue #16377)
  (closes issue #16376)
  Reported by: bcnit
  Patches:
        res_monitor.c-issue16376-1.patch uploaded by dant (license 670)
........
  r236062 | dvossel | 2009-12-22 11:58:19 -0500 (Tue, 22 Dec 2009) | 11 lines
  
  fixes issue with p->method incorrectly set to ACK
  
  It is possible for a second ACK to come in for a retransmitted message.
  If an ack does not match an unacked message in our queue, restore the previous
  p->method as this ACK is completely ignored.
  
  (closes issue #16295)
  Reported by: omolenkamp
  Patches:
        issue16295_v2.diff uploaded by dvossel (license 671)
........
  r236184 | tilghman | 2009-12-22 21:55:24 -0500 (Tue, 22 Dec 2009) | 4 lines
  
  If EXEC only gets a single argument, don't crash when the second is used.
  (closes issue #16504)
   Reported by: bklang
........
  r236261 | mnicholson | 2009-12-23 10:21:28 -0500 (Wed, 23 Dec 2009) | 8 lines
  
  Properly set T.38 attributes and don't return before T.38 ports are configured when T.38 is found but no audio stream is found.
  
  (closes issue #16318)
  Reported by: bird_of_Luck
  Patches:
        t38-sdp-parsing-fix3.diff uploaded by mnicholson (license 96), written by vrban and mnicholson
  Tested by: vrban, mihaill
........
  r236357 | kpfleming | 2009-12-26 10:26:17 -0500 (Sat, 26 Dec 2009) | 1 line
  
  update to latest releases with zero uid/gid
........
  r236433 | tilghman | 2009-12-27 13:19:38 -0500 (Sun, 27 Dec 2009) | 2 lines
  
  Turn on colors in the daemon, since there's many requests for it on Ubuntu.
........
  r236509 | seanbright | 2009-12-28 07:43:36 -0500 (Mon, 28 Dec 2009) | 12 lines
  
  Avoid a crash with large numbers of MeetMe conferences.
  
  Similar to changes made to Queue(), when we have large numbers of conferences in
  meetme.conf (1000s) and we use alloca()/strdupa(), we can blow out the stack and
  crash, so instead just use a single fixed buffer.
  
  (closes issue #16509)
  Reported by: Kashif Raza
  Patches:
        20091223_16509.patch uploaded by seanbright (license 71)
  Tested by: seanbright
........
  r236585 | seanbright | 2009-12-28 10:12:08 -0500 (Mon, 28 Dec 2009) | 7 lines
  
  Try a test compile to see if PTHREAD_ONCE_INIT requires extra braces.
  
  There was conditional code (based on build platform) to optioinally wrap
  PTHREAD_ONCE_INIT in braces that was removed since it is fixed in newer versions
  of Solaris/OpenSolaris, but I am still running into it on Solaris 10 x86 so add
  a configure-time check for it.
........

Modified:
    team/seanbright/solaris-10-1.4/   (props changed)
    team/seanbright/solaris-10-1.4/apps/app_meetme.c
    team/seanbright/solaris-10-1.4/channels/chan_sip.c
    team/seanbright/solaris-10-1.4/configure
    team/seanbright/solaris-10-1.4/configure.ac
    team/seanbright/solaris-10-1.4/contrib/init.d/rc.debian.asterisk
    team/seanbright/solaris-10-1.4/include/asterisk/autoconfig.h.in
    team/seanbright/solaris-10-1.4/include/asterisk/threadstorage.h
    team/seanbright/solaris-10-1.4/res/res_agi.c
    team/seanbright/solaris-10-1.4/res/res_monitor.c
    team/seanbright/solaris-10-1.4/sounds/Makefile

Propchange: team/seanbright/solaris-10-1.4/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Dec 28 10:06:42 2009
@@ -1,1 +1,1 @@
-/branches/1.4:1-235822
+/branches/1.4:1-236636

Modified: team/seanbright/solaris-10-1.4/apps/app_meetme.c
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/apps/app_meetme.c?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/apps/app_meetme.c (original)
+++ team/seanbright/solaris-10-1.4/apps/app_meetme.c Mon Dec 28 10:06:42 2009
@@ -318,6 +318,9 @@
 
 #define MAX_CONFNUM 80
 #define MAX_PIN     80
+
+/* Enough space for "<conference #>,<pin>,<admin pin>" followed by a 0 byte. */
+#define MAX_SETTINGS (MAX_CONFNUM + MAX_PIN + MAX_PIN + 3)
 
 enum announcetypes {
 	CONF_HASJOIN,
@@ -2563,7 +2566,6 @@
 	struct ast_config *cfg;
 	struct ast_variable *var;
 	struct ast_conference *cnf;
-	char *parse;
 	AST_DECLARE_APP_ARGS(args,
 		AST_APP_ARG(confno);
 		AST_APP_ARG(pin);
@@ -2602,13 +2604,15 @@
 				ast_log(LOG_WARNING, "No %s file :(\n", CONFIG_FILE_NAME);
 				return NULL;
 			}
+
 			for (var = ast_variable_browse(cfg, "rooms"); var; var = var->next) {
+				char parse[MAX_SETTINGS];
+
 				if (strcasecmp(var->name, "conf"))
 					continue;
-				
-				if (!(parse = ast_strdupa(var->value)))
-					return NULL;
-				
+
+				ast_copy_string(parse, var->value, sizeof(parse));
+
 				AST_NONSTANDARD_APP_ARGS(args, parse, ',');
 				if (!strcasecmp(args.confno, confno)) {
 					/* Bingo it's a valid conference */
@@ -2774,33 +2778,32 @@
 				if (cfg) {
 					var = ast_variable_browse(cfg, "rooms");
 					while (var) {
+						char parse[MAX_SETTINGS], *stringp = parse, *confno_tmp;
 						if (!strcasecmp(var->name, "conf")) {
-							char *stringp = ast_strdupa(var->value);
-							if (stringp) {
-								char *confno_tmp = strsep(&stringp, "|,");
-								int found = 0;
-								if (!dynamic) {
-									/* For static:  run through the list and see if this conference is empty */
-									AST_LIST_LOCK(&confs);
-									AST_LIST_TRAVERSE(&confs, cnf, list) {
-										if (!strcmp(confno_tmp, cnf->confno)) {
-											/* The conference exists, therefore it's not empty */
-											found = 1;
-											break;
-										}
+							int found = 0;
+							ast_copy_string(parse, var->value, sizeof(parse));
+							confno_tmp = strsep(&stringp, "|,");
+							if (!dynamic) {
+								/* For static:  run through the list and see if this conference is empty */
+								AST_LIST_LOCK(&confs);
+								AST_LIST_TRAVERSE(&confs, cnf, list) {
+									if (!strcmp(confno_tmp, cnf->confno)) {
+										/* The conference exists, therefore it's not empty */
+										found = 1;
+										break;
 									}
-									AST_LIST_UNLOCK(&confs);
-									if (!found) {
-										/* At this point, we have a confno_tmp (static conference) that is empty */
-										if ((empty_no_pin && ast_strlen_zero(stringp)) || (!empty_no_pin)) {
-											/* Case 1:  empty_no_pin and pin is nonexistent (NULL)
-											 * Case 2:  empty_no_pin and pin is blank (but not NULL)
-											 * Case 3:  not empty_no_pin
-											 */
-											ast_copy_string(confno, confno_tmp, sizeof(confno));
-											break;
-											/* XXX the map is not complete (but we do have a confno) */
-										}
+								}
+								AST_LIST_UNLOCK(&confs);
+								if (!found) {
+									/* At this point, we have a confno_tmp (static conference) that is empty */
+									if ((empty_no_pin && ast_strlen_zero(stringp)) || (!empty_no_pin)) {
+										/* Case 1:  empty_no_pin and pin is nonexistent (NULL)
+										 * Case 2:  empty_no_pin and pin is blank (but not NULL)
+										 * Case 3:  not empty_no_pin
+										 */
+										ast_copy_string(confno, confno_tmp, sizeof(confno));
+										break;
+										/* XXX the map is not complete (but we do have a confno) */
 									}
 								}
 							}

Modified: team/seanbright/solaris-10-1.4/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/channels/chan_sip.c?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/channels/chan_sip.c (original)
+++ team/seanbright/solaris-10-1.4/channels/chan_sip.c Mon Dec 28 10:06:42 2009
@@ -5619,6 +5619,12 @@
 			    ast_rtp_lookup_mime_multiple(s1, SIPBUFSIZE, p->noncodeccapability, 0, 0),
 			    ast_rtp_lookup_mime_multiple(s2, SIPBUFSIZE, peernoncodeccapability, 0, 0),
 			    ast_rtp_lookup_mime_multiple(s3, SIPBUFSIZE, newnoncodeccapability, 0, 0));
+
+		ast_log(LOG_DEBUG, "Our T38 capability = (%d), peer T38 capability (%d), joint T38 capability (%d)\n",
+			p->t38.capability,
+			p->t38.peercapability,
+			p->t38.jointcapability);
+
 	}
 	if (!newjointcapability) {
 		/* If T.38 was not negotiated either, totally bail out... */
@@ -5629,7 +5635,6 @@
 		} else {
 			if (option_debug > 2)
 				ast_log(LOG_DEBUG, "Have T.38 but no audio codecs, accepting offer anyway\n");
-			return 0;
 		}
 	}
 
@@ -5903,10 +5908,8 @@
 static int process_sdp_a_image(const char *a, struct sip_pvt *p)
 {
 	int found = FALSE;
-	int peert38capability = 0;
 	char s[256];
 	int x;
-	int debug = sip_debug_test_pvt(p);
 
 	/* Scan trough the a= lines for T38 attributes and set apropriate fileds */
 	if ((sscanf(a, "T38FaxMaxBuffer:%30d", &x) == 1)) {
@@ -5919,22 +5922,22 @@
 			ast_log(LOG_DEBUG,"T38MaxBitRate: %d\n",x);
 		switch (x) {
 		case 14400:
-			peert38capability |= T38FAX_RATE_14400 | T38FAX_RATE_12000 | T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
+			p->t38.peercapability |= T38FAX_RATE_14400 | T38FAX_RATE_12000 | T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
 			break;
 		case 12000:
-			peert38capability |= T38FAX_RATE_12000 | T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
+			p->t38.peercapability |= T38FAX_RATE_12000 | T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
 			break;
 		case 9600:
-			peert38capability |= T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
+			p->t38.peercapability |= T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
 			break;
 		case 7200:
-			peert38capability |= T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
+			p->t38.peercapability |= T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400;
 			break;
 		case 4800:
-			peert38capability |= T38FAX_RATE_4800 | T38FAX_RATE_2400;
+			p->t38.peercapability |= T38FAX_RATE_4800 | T38FAX_RATE_2400;
 			break;
 		case 2400:
-			peert38capability |= T38FAX_RATE_2400;
+			p->t38.peercapability |= T38FAX_RATE_2400;
 			break;
 		}
 	} else if ((sscanf(a, "T38FaxVersion:%30d", &x) == 1)) {
@@ -5942,9 +5945,9 @@
 		if (option_debug > 2)
 			ast_log(LOG_DEBUG, "FaxVersion: %d\n",x);
 		if (x == 0)
-			peert38capability |= T38FAX_VERSION_0;
+			p->t38.peercapability |= T38FAX_VERSION_0;
 		else if (x == 1)
-			peert38capability |= T38FAX_VERSION_1;
+			p->t38.peercapability |= T38FAX_VERSION_1;
 	} else if ((sscanf(a, "T38FaxMaxDatagram:%30d", &x) == 1) || (sscanf(a, "T38MaxDatagram:%30d", &x) == 1)) {
 		found = TRUE;
 		if (option_debug > 2)
@@ -5957,11 +5960,11 @@
 		    if (option_debug > 2)
 			ast_log(LOG_DEBUG, "FillBitRemoval: %d\n",x);
 		    if (x == 1)
-			peert38capability |= T38FAX_FILL_BIT_REMOVAL;
+			p->t38.peercapability |= T38FAX_FILL_BIT_REMOVAL;
 		} else {
 		    if (option_debug > 2)
 			ast_log(LOG_DEBUG, "FillBitRemoval\n");
-		    peert38capability |= T38FAX_FILL_BIT_REMOVAL;
+		    p->t38.peercapability |= T38FAX_FILL_BIT_REMOVAL;
 		}
 	} else if ((strncmp(a, "T38FaxTranscodingMMR", 20) == 0)) {
 		found = TRUE;
@@ -5969,11 +5972,11 @@
 		    if (option_debug > 2)
 			ast_log(LOG_DEBUG, "Transcoding MMR: %d\n",x);
 		    if (x == 1)
-			peert38capability |= T38FAX_TRANSCODING_MMR;
+			p->t38.peercapability |= T38FAX_TRANSCODING_MMR;
 		} else {
 		    if (option_debug > 2)
 			ast_log(LOG_DEBUG, "Transcoding MMR\n");
-		    peert38capability |= T38FAX_TRANSCODING_MMR;
+		    p->t38.peercapability |= T38FAX_TRANSCODING_MMR;
 		}
 	} else if ((strncmp(a, "T38FaxTranscodingJBIG", 21) == 0)) {
 		found = TRUE;
@@ -5981,47 +5984,42 @@
 		    if (option_debug > 2)
 			ast_log(LOG_DEBUG, "Transcoding JBIG: %d\n",x);
 		    if (x == 1)
-			peert38capability |= T38FAX_TRANSCODING_JBIG;
+			p->t38.peercapability |= T38FAX_TRANSCODING_JBIG;
 		} else {
 		    if (option_debug > 2)
 			ast_log(LOG_DEBUG, "Transcoding JBIG\n");
-		    peert38capability |= T38FAX_TRANSCODING_JBIG;
+		    p->t38.peercapability |= T38FAX_TRANSCODING_JBIG;
 		}
 	} else if ((sscanf(a, "T38FaxRateManagement:%255s", s) == 1)) {
 		found = TRUE;
 		if (option_debug > 2)
 			ast_log(LOG_DEBUG, "RateManagement: %s\n", s);
 		if (!strcasecmp(s, "localTCF"))
-			peert38capability |= T38FAX_RATE_MANAGEMENT_LOCAL_TCF;
+			p->t38.peercapability |= T38FAX_RATE_MANAGEMENT_LOCAL_TCF;
 		else if (!strcasecmp(s, "transferredTCF"))
-			peert38capability |= T38FAX_RATE_MANAGEMENT_TRANSFERED_TCF;
+			p->t38.peercapability |= T38FAX_RATE_MANAGEMENT_TRANSFERED_TCF;
 	} else if ((sscanf(a, "T38FaxUdpEC:%255s", s) == 1)) {
 		found = TRUE;
 		if (option_debug > 2)
 			ast_log(LOG_DEBUG, "UDP EC: %s\n", s);
 		if (!strcasecmp(s, "t38UDPRedundancy")) {
-			peert38capability |= T38FAX_UDP_EC_REDUNDANCY;
+			p->t38.peercapability |= T38FAX_UDP_EC_REDUNDANCY;
 			ast_udptl_set_error_correction_scheme(p->udptl, UDPTL_ERROR_CORRECTION_REDUNDANCY);
 		} else if (!strcasecmp(s, "t38UDPFEC")) {
-			peert38capability |= T38FAX_UDP_EC_FEC;
+			p->t38.peercapability |= T38FAX_UDP_EC_FEC;
 			ast_udptl_set_error_correction_scheme(p->udptl, UDPTL_ERROR_CORRECTION_FEC);
 		} else {
-			peert38capability |= T38FAX_UDP_EC_NONE;
+			p->t38.peercapability |= T38FAX_UDP_EC_NONE;
 			ast_udptl_set_error_correction_scheme(p->udptl, UDPTL_ERROR_CORRECTION_NONE);
 		}
 	}
 
 	if (found) { /* Some cisco equipment returns nothing beside c= and m= lines in 200 OK T38 SDP */
-		p->t38.peercapability = peert38capability;
-		p->t38.jointcapability = (peert38capability & 255); /* Put everything beside supported speeds settings */
-		peert38capability &= (T38FAX_RATE_14400 | T38FAX_RATE_12000 | T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400);
-		p->t38.jointcapability |= (peert38capability & p->t38.capability); /* Put the lower of our's and peer's speed */
-	}
-	if (debug)
-		ast_log(LOG_DEBUG, "Our T38 capability = (%d), peer T38 capability (%d), joint T38 capability (%d)\n",
-			p->t38.capability,
-			p->t38.peercapability,
-			p->t38.jointcapability);
+		int t38speed = p->t38.peercapability & (T38FAX_RATE_14400 | T38FAX_RATE_12000 | T38FAX_RATE_9600 | T38FAX_RATE_7200 | T38FAX_RATE_4800 | T38FAX_RATE_2400);
+
+		p->t38.jointcapability = (p->t38.peercapability & 255); /* Put everything beside supported speeds settings */
+		p->t38.jointcapability |= (t38speed & p->t38.capability); /* Put the lower of our's and peer's speed */
+	}
 
 	return found;
 }
@@ -16387,6 +16385,8 @@
 	int debug = sip_debug_test_pvt(p);
 	char *e;
 	int error = 0;
+	int oldmethod = p->method;
+	int acked = 0;
 
 	/* Get Method and Cseq */
 	cseq = get_header(req, "Cseq");
@@ -16563,7 +16563,7 @@
 		if (seqno == p->pendinginvite) {
 			p->invitestate = INV_TERMINATED;
 			p->pendinginvite = 0;
-			__sip_ack(p, seqno, FLAG_RESPONSE, 0);
+			acked = __sip_ack(p, seqno, FLAG_RESPONSE, 0);
 			if (find_sdp(req)) {
 				if (process_sdp(p, req))
 					return -1;
@@ -16572,7 +16572,12 @@
 		} else if (p->glareinvite == seqno) {
 			/* handle ack for the 491 pending send for glareinvite */
 			p->glareinvite = 0;
-			__sip_ack(p, seqno, 1, 0);
+			acked = __sip_ack(p, seqno, 1, 0);
+		}
+		if (!acked) {
+			/* Got an ACK that did not match anything. Ignore
+			 * silently and restore previous method */
+			p->method = oldmethod;
 		}
 		/* Got an ACK that we did not match. Ignore silently */
 		if (!p->lastinvite && ast_strlen_zero(p->randdata))

Modified: team/seanbright/solaris-10-1.4/configure.ac
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/configure.ac?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/configure.ac (original)
+++ team/seanbright/solaris-10-1.4/configure.ac Mon Dec 28 10:06:42 2009
@@ -356,6 +356,26 @@
 LDFLAGS="${saved_LDFLAGS}"
 if test "${ac_cv_pthread_rwlock_timedwrlock}" = "yes"; then
   AC_DEFINE([HAVE_PTHREAD_RWLOCK_TIMEDWRLOCK], 1, [Define if your system has pthread_rwlock_timedwrlock()])
+fi
+
+AC_MSG_CHECKING(if PTHREAD_ONCE_INIT needs braces)
+saved_CFLAGS="${CFLAGS}"
+CFLAGS="${CFLAGS} -Werror -Wmissing-braces"
+AC_COMPILE_IFELSE(
+  [AC_LANG_PROGRAM(
+    [#include <pthread.h>],
+	[pthread_once_t once = PTHREAD_ONCE_INIT;])
+  ],[
+    AC_MSG_RESULT(no)
+    ac_cv_pthread_once_needsbraces="no"
+  ],[
+    AC_MSG_RESULT(yes)
+    ac_cv_pthread_once_needsbraces="yes"
+  ]
+)
+CFLAGS="${saved_CFLAGS}"
+if test "${ac_cv_pthread_once_needsbraces}" = "yes"; then
+  AC_DEFINE([PTHREAD_ONCE_INIT_NEEDS_BRACES], 1, [Define if your system needs braces around PTHREAD_ONCE_INIT])
 fi
 
 AC_MSG_CHECKING(for compiler atomic operations)

Modified: team/seanbright/solaris-10-1.4/contrib/init.d/rc.debian.asterisk
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/contrib/init.d/rc.debian.asterisk?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/contrib/init.d/rc.debian.asterisk (original)
+++ team/seanbright/solaris-10-1.4/contrib/init.d/rc.debian.asterisk Mon Dec 28 10:06:42 2009
@@ -35,6 +35,10 @@
 #AST_USER="asterisk"
 #AST_GROUP="asterisk"
 
+# If you DON'T want Asterisk to start up with terminal colors, comment
+# this out.
+COLOR=yes
+
 set -e
 
 if ! [ -x $DAEMON ] ; then
@@ -68,7 +72,12 @@
                 ASTARGS="$ASTARGS -G $AST_GROUP"
         fi
 	# "start-stop-daemon --oknodo" returns 0 even if Asterisk was already running (as LSB expects):
-	start-stop-daemon --start --oknodo --exec $DAEMON -- $ASTARGS
+	if test "x$COLOR" = "xyes" ; then
+		export TERM=linux
+		start-stop-daemon --start --oknodo --background --exec $DAEMON -- $ASTARGS -c
+	else
+		start-stop-daemon --start --oknodo --exec $DAEMON -- $ASTARGS
+	fi
 	log_end_msg $?
 	;;
   stop)

Modified: team/seanbright/solaris-10-1.4/include/asterisk/autoconfig.h.in
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/include/asterisk/autoconfig.h.in?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/include/asterisk/autoconfig.h.in (original)
+++ team/seanbright/solaris-10-1.4/include/asterisk/autoconfig.h.in Mon Dec 28 10:06:42 2009
@@ -655,6 +655,9 @@
 /* Define to necessary symbol if this constant uses a non-standard name on
    your system. */
 #undef PTHREAD_CREATE_JOINABLE
+
+/* Define if your system needs braces around PTHREAD_ONCE_INIT */
+#undef PTHREAD_ONCE_INIT_NEEDS_BRACES
 
 /* Define as the return type of signal handlers (`int' or `void'). */
 #undef RETSIGTYPE

Modified: team/seanbright/solaris-10-1.4/include/asterisk/threadstorage.h
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/include/asterisk/threadstorage.h?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/include/asterisk/threadstorage.h (original)
+++ team/seanbright/solaris-10-1.4/include/asterisk/threadstorage.h Mon Dec 28 10:06:42 2009
@@ -67,11 +67,17 @@
 #define AST_THREADSTORAGE(name, name_init) \
 	AST_THREADSTORAGE_CUSTOM(name, name_init, ast_free_ptr) 
 
+#if defined(PTHREAD_ONCE_INIT_NEEDS_BRACES)
+# define AST_PTHREAD_ONCE_INIT { PTHREAD_ONCE_INIT }
+#else
+# define AST_PTHREAD_ONCE_INIT PTHREAD_ONCE_INIT
+#endif
+
 #if !defined(DEBUG_THREADLOCALS)
 #define AST_THREADSTORAGE_CUSTOM(name, name_init, cleanup)  \
 static void name_init(void);                                \
 static struct ast_threadstorage name = {                    \
-	.once = PTHREAD_ONCE_INIT,                              \
+	.once = AST_PTHREAD_ONCE_INIT,                          \
 	.key_init = name_init,                                  \
 };                                                          \
 static void name_init(void)                                 \
@@ -82,7 +88,7 @@
 #define AST_THREADSTORAGE_CUSTOM(name, name_init, cleanup)  \
 static void name_init(void);                                \
 static struct ast_threadstorage name = {                    \
-	.once = PTHREAD_ONCE_INIT,                              \
+	.once = AST_PTHREAD_ONCE_INIT,                          \
 	.key_init = name_init,                                  \
 };                                                          \
 static void __cleanup_##name(void *data)                    \

Modified: team/seanbright/solaris-10-1.4/res/res_agi.c
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/res/res_agi.c?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/res/res_agi.c (original)
+++ team/seanbright/solaris-10-1.4/res/res_agi.c Mon Dec 28 10:06:42 2009
@@ -1140,7 +1140,7 @@
 		if(!strcasecmp(argv[1], PARK_APP_NAME)) {
 			ast_masq_park_call(chan, NULL, 0, NULL);
 		}
-		res = pbx_exec(chan, app, argv[2]);
+		res = pbx_exec(chan, app, argc == 2 ? "" : argv[2]);
 	} else {
 		ast_log(LOG_WARNING, "Could not find application (%s)\n", argv[1]);
 		res = -2;

Modified: team/seanbright/solaris-10-1.4/res/res_monitor.c
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/res/res_monitor.c?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/res/res_monitor.c (original)
+++ team/seanbright/solaris-10-1.4/res/res_monitor.c Mon Dec 28 10:06:42 2009
@@ -169,8 +169,8 @@
 						directory ? "" : ast_config_AST_MONITOR_DIR, absolute, fname_base);
 			snprintf(monitor->write_filename, FILENAME_MAX, "%s%s%s-out",
 						directory ? "" : ast_config_AST_MONITOR_DIR, absolute, fname_base);
-			snprintf(monitor->filename_base, FILENAME_MAX, "%s/%s",
-					 ast_config_AST_MONITOR_DIR, fname_base);
+			snprintf(monitor->filename_base, FILENAME_MAX, "%s%s%s",
+					 	directory ? "" : ast_config_AST_MONITOR_DIR, absolute, fname_base);
 		} else {
 			ast_mutex_lock(&monitorlock);
 			snprintf(monitor->read_filename, FILENAME_MAX, "%s/audio-in-%ld",

Modified: team/seanbright/solaris-10-1.4/sounds/Makefile
URL: http://svnview.digium.com/svn/asterisk/team/seanbright/solaris-10-1.4/sounds/Makefile?view=diff&rev=236637&r1=236636&r2=236637
==============================================================================
--- team/seanbright/solaris-10-1.4/sounds/Makefile (original)
+++ team/seanbright/solaris-10-1.4/sounds/Makefile Mon Dec 28 10:06:42 2009
@@ -18,8 +18,8 @@
 PWD:=$(shell pwd)
 SOUNDS_DIR:=$(DESTDIR)$(ASTDATADIR)/sounds
 MOH_DIR:=$(DESTDIR)$(ASTDATADIR)/moh
-CORE_SOUNDS_VERSION:=1.4.16
-EXTRA_SOUNDS_VERSION:=1.4.9
+CORE_SOUNDS_VERSION:=1.4.17
+EXTRA_SOUNDS_VERSION:=1.4.10
 SOUNDS_URL:=http://downloads.asterisk.org/pub/telephony/sounds/releases
 MCS:=$(subst -EN-,-en-,$(MENUSELECT_CORE_SOUNDS))
 MCS:=$(subst -FR-,-fr-,$(MCS))




More information about the asterisk-commits mailing list