[asterisk-commits] kpfleming: branch group/new_loader_completion r38232 - in /team/group/new_loa...

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Jul 26 06:18:13 MST 2006


Author: kpfleming
Date: Wed Jul 26 08:18:12 2006
New Revision: 38232

URL: http://svn.digium.com/view/asterisk?rev=38232&view=rev
Log:
update

Modified:
    team/group/new_loader_completion/   (props changed)
    team/group/new_loader_completion/channel.c
    team/group/new_loader_completion/channels/chan_mgcp.c
    team/group/new_loader_completion/channels/chan_oss.c
    team/group/new_loader_completion/channels/chan_sip.c
    team/group/new_loader_completion/channels/chan_zap.c
    team/group/new_loader_completion/cli.c
    team/group/new_loader_completion/codecs/gsm/Makefile

Propchange: team/group/new_loader_completion/
------------------------------------------------------------------------------
    automerge = please

Propchange: team/group/new_loader_completion/
------------------------------------------------------------------------------
Binary property 'branch-1.2-blocked' - no diff available.

Propchange: team/group/new_loader_completion/
------------------------------------------------------------------------------
Binary property 'branch-1.2-merged' - no diff available.

Propchange: team/group/new_loader_completion/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Wed Jul 26 08:18:12 2006
@@ -1,1 +1,1 @@
-/trunk:1-38126
+/trunk:1-38231

Modified: team/group/new_loader_completion/channel.c
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/channel.c?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/channel.c (original)
+++ team/group/new_loader_completion/channel.c Wed Jul 26 08:18:12 2006
@@ -515,7 +515,7 @@
 	default:
 		pthread_once(&state2str_buf_once, state2str_buf_key_create);
 		if (!(buf = pthread_getspecific(state2str_buf_key))) {
-			if (!(buf = ast_calloc(1, STATE2STR_BUFSIZE)))
+			if (!(buf = ast_malloc(STATE2STR_BUFSIZE)))
 				return NULL;
 			pthread_setspecific(state2str_buf_key, buf);
 		}

Modified: team/group/new_loader_completion/channels/chan_mgcp.c
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/channels/chan_mgcp.c?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/channels/chan_mgcp.c (original)
+++ team/group/new_loader_completion/channels/chan_mgcp.c Wed Jul 26 08:18:12 2006
@@ -981,9 +981,7 @@
 		sub->rtp = NULL;
 	}
 
-	/* Decrement use count */
-	ast_atomic_fetchadd_int(&__mod_desc->usecnt, -1);
-	ast_update_use_count();
+	ast_module_unref(ast_module_info->self);
 
 	if ((p->hookstate == MGCP_ONHOOK) && (!sub->next->rtp)) {
 		p->hidecallerid = 0;
@@ -1407,7 +1405,7 @@
 		if (i->amaflags)
 			tmp->amaflags = i->amaflags;
 		sub->owner = tmp;
-		sub->u = ast_module_user_add(tmp);
+		ast_module_ref(ast_module_info->self);
 		tmp->callgroup = i->callgroup;
 		tmp->pickupgroup = i->pickupgroup;
 		ast_string_field_set(tmp, call_forward, i->call_forward);

Modified: team/group/new_loader_completion/channels/chan_oss.c
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/channels/chan_oss.c?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/channels/chan_oss.c (original)
+++ team/group/new_loader_completion/channels/chan_oss.c Wed Jul 26 08:18:12 2006
@@ -945,7 +945,7 @@
 static int oss_indicate(struct ast_channel *c, int cond, const void *data, size_t datalen)
 {
 	struct chan_oss_pvt *o = c->tech_pvt;
-	int res;
+	int res = -1;
 
 	switch(cond) {
 	case AST_CONTROL_BUSY:
@@ -970,6 +970,7 @@
 		ast_verbose( " << Console Has Been Retrieved from Hold >> \n");
 		ast_moh_stop(c);
 		break;
+
 	default:
 		ast_log(LOG_WARNING,
 		    "Don't know how to display condition %d on %s\n",

Modified: team/group/new_loader_completion/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/channels/chan_sip.c?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/channels/chan_sip.c (original)
+++ team/group/new_loader_completion/channels/chan_sip.c Wed Jul 26 08:18:12 2006
@@ -4446,7 +4446,7 @@
 	int old = 0;
 
 	/* Peer capability is the capability in the SDP, non codec is RFC2833 DTMF (101) */	
-	int peercapability, peernoncodeccapability;
+	int peercapability = 0, peernoncodeccapability = 0;
 	int vpeercapability = 0, vpeernoncodeccapability = 0;
 	struct sockaddr_in sin;		/*!< media socket address */
 	struct sockaddr_in vsin;	/*!< Video socket address */
@@ -4477,11 +4477,11 @@
 	/* Initialize the temporary RTP structures we use to evaluate the offer from the peer */
 	newaudiortp = alloca(ast_rtp_alloc_size());
 	memset(newaudiortp, 0, ast_rtp_alloc_size());
-	ast_rtp_pt_default(newaudiortp);
+	ast_rtp_pt_clear(newaudiortp);
 
 	newvideortp = alloca(ast_rtp_alloc_size());
 	memset(newvideortp, 0, ast_rtp_alloc_size());
-	ast_rtp_pt_default(newvideortp);
+	ast_rtp_pt_clear(newvideortp);
 
 	/* Update our last rtprx when we receive an SDP, too */
 	p->lastrtprx = p->lastrtptx = time(NULL); /* XXX why both ? */
@@ -4519,8 +4519,6 @@
 		int x;
 		int audio = FALSE;
 
-		if (p->vrtp)
-			ast_rtp_pt_clear(newvideortp);  /* Must be cleared in case no m=video line exists */
 		numberofports = 1;
 		if ((sscanf(m, "audio %d/%d RTP/AVP %n", &x, &numberofports, &len) == 2) ||
 		    (sscanf(m, "audio %d RTP/AVP %n", &x, &len) == 1)) {
@@ -4529,7 +4527,6 @@
 			/* Found audio stream in this media definition */
 			portno = x;
 			/* Scan through the RTP payload types specified in a "m=" line: */
-			ast_rtp_pt_clear(newaudiortp);
 			for (codecs = m + len; !ast_strlen_zero(codecs); codecs = ast_skip_blanks(codecs + len)) {
 				if (sscanf(codecs, "%d%n", &codec, &len) != 1) {
 					ast_log(LOG_WARNING, "Error in codec string '%s'\n", codecs);
@@ -4825,8 +4822,7 @@
 
 	/* Now gather all of the codecs that we are asked for: */
 	ast_rtp_get_current_formats(newaudiortp, &peercapability, &peernoncodeccapability);
-	if (p->vrtp)
-		ast_rtp_get_current_formats(newvideortp, &vpeercapability, &vpeernoncodeccapability);
+	ast_rtp_get_current_formats(newvideortp, &vpeercapability, &vpeernoncodeccapability);
 
 	newjointcapability = p->capability & (peercapability | vpeercapability);
 	newpeercapability = (peercapability | vpeercapability);
@@ -11133,6 +11129,7 @@
 	int outgoing = ast_test_flag(&p->flags[0], SIP_OUTGOING);
 	int res = 0;
 	int reinvite = (p->owner && p->owner->_state == AST_STATE_UP);
+	struct ast_channel *bridgepeer = NULL;
 	
 	if (option_debug > 3) {
 		if (reinvite)
@@ -11233,7 +11230,6 @@
 			build_route(p, req, 1);
 		}
 		
-		struct ast_channel *bridgepeer = NULL;
 		if (p->owner && (p->owner->_state == AST_STATE_UP) && (bridgepeer = ast_bridged_channel(p->owner))) { /* if this is a re-invite */
 			struct sip_pvt *bridgepvt = NULL;
 

Modified: team/group/new_loader_completion/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/channels/chan_zap.c?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/channels/chan_zap.c (original)
+++ team/group/new_loader_completion/channels/chan_zap.c Wed Jul 26 08:18:12 2006
@@ -3117,7 +3117,13 @@
 	oc0 = p0->owner;
 	oc1 = p1->owner;
 
-	ast_mutex_lock(&p0->lock);
+	if (ast_mutex_trylock(&p0->lock)) {
+		/* Don't block, due to potential for deadlock */
+		ast_mutex_unlock(&c0->lock);
+		ast_mutex_unlock(&c1->lock);
+		ast_log(LOG_NOTICE, "Avoiding deadlock...\n");
+		return AST_BRIDGE_RETRY;
+	}
 	if (ast_mutex_trylock(&p1->lock)) {
 		/* Don't block, due to potential for deadlock */
 		ast_mutex_unlock(&p0->lock);

Modified: team/group/new_loader_completion/cli.c
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/cli.c?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/cli.c (original)
+++ team/group/new_loader_completion/cli.c Wed Jul 26 08:18:12 2006
@@ -49,22 +49,50 @@
 #include "editline/readline/readline.h"
 
 extern unsigned long global_fin, global_fout;
-	
+
+static pthread_key_t ast_cli_buf_key;
+static pthread_once_t ast_cli_buf_once = PTHREAD_ONCE_INIT;
+
+/*! \brief Initial buffer size for resulting strings in ast_cli() */
+#define AST_CLI_MAXSTRLEN   256
+
+static void ast_cli_buf_key_create(void)
+{
+	pthread_key_create(&ast_cli_buf_key, free);
+}
+
 void ast_cli(int fd, char *fmt, ...)
 {
-	char *stuff;
+	struct {
+		size_t len;
+		char str[0];
+	} *buf;
 	int res;
 	va_list ap;
 
+	pthread_once(&ast_cli_buf_once, ast_cli_buf_key_create);
+	if (!(buf = pthread_getspecific(ast_cli_buf_key))) {
+		if (!(buf = ast_malloc(AST_CLI_MAXSTRLEN + sizeof(*buf))))
+			return;
+		buf->len = AST_CLI_MAXSTRLEN;
+		pthread_setspecific(ast_cli_buf_key, buf);
+	}
+
 	va_start(ap, fmt);
-	res = vasprintf(&stuff, fmt, ap);
+	res = vsnprintf(buf->str, buf->len, fmt, ap);
+	while (res >= buf->len) {
+		if (!(buf = ast_realloc(buf, (buf->len * 2) + sizeof(*buf)))) {
+			va_end(ap);
+			return;
+		}
+		buf->len *= 2;
+		pthread_setspecific(ast_cli_buf_key, buf);
+		res = vsnprintf(buf->str, buf->len, fmt, ap);
+	}
 	va_end(ap);
-	if (res == -1) {
-		ast_log(LOG_ERROR, "Memory allocation failure\n");
-	} else {
-		ast_carefulwrite(fd, stuff, strlen(stuff), 100);
-		free(stuff);
-	}
+
+	if (res > 0)
+		ast_carefulwrite(fd, buf->str, strlen(buf->str), 100);
 }
 
 static AST_LIST_HEAD_STATIC(helpers, ast_cli_entry);

Modified: team/group/new_loader_completion/codecs/gsm/Makefile
URL: http://svn.digium.com/view/asterisk/team/group/new_loader_completion/codecs/gsm/Makefile?rev=38232&r1=38231&r2=38232&view=diff
==============================================================================
--- team/group/new_loader_completion/codecs/gsm/Makefile (original)
+++ team/group/new_loader_completion/codecs/gsm/Makefile Wed Jul 26 08:18:12 2006
@@ -39,7 +39,7 @@
 
 ifeq (, $(findstring $(OSARCH) , Darwin SunOS ))
 ifeq (, $(findstring $(PROC) , x86_64 amd64 ultrasparc sparc64 arm ppc ppc64 ia64 s390))
-ifeq (, $(findstring $(shell uname -m) , ppc ppc64 alpha armv4l ))
+ifeq (, $(findstring $(shell uname -m) , ppc ppc64 alpha armv4l s390 ))
 OPTIMIZE+=-march=$(PROC)
 endif
 endif
@@ -209,7 +209,7 @@
 # XXX Keep a space after each findstring argument
 # XXX should merge with GSM_OBJECTS
 ifeq (${OSARCH},Linux)
-ifeq (,$(findstring $(shell uname -m) , x86_64 amd64 ppc ppc64 alpha armv4l sparc64 parisc ))
+ifeq (,$(findstring $(shell uname -m) , x86_64 amd64 ppc ppc64 alpha armv4l sparc64 parisc s390 ))
 ifeq (,$(findstring ${PROC} , arm ia64 s390 ))
 GSM_SOURCES+= $(SRC)/k6opt.s
 endif



More information about the asterisk-commits mailing list