[libpri-commits] moy: branch moy/tap-1.4 r2177 - /team/moy/tap-1.4/

SVN commits to the libpri project libpri-commits at lists.digium.com
Fri Dec 31 17:48:13 UTC 2010


Author: moy
Date: Fri Dec 31 11:48:09 2010
New Revision: 2177

URL: http://svnview.digium.com/svn/libpri?view=rev&rev=2177
Log:
hack - I must stop using libpri for tapping -_-

Modified:
    team/moy/tap-1.4/Makefile
    team/moy/tap-1.4/libpri.h
    team/moy/tap-1.4/pri.c
    team/moy/tap-1.4/pri_internal.h
    team/moy/tap-1.4/q931.c

Modified: team/moy/tap-1.4/Makefile
URL: http://svnview.digium.com/svn/libpri/team/moy/tap-1.4/Makefile?view=diff&rev=2177&r1=2176&r2=2177
==============================================================================
--- team/moy/tap-1.4/Makefile (original)
+++ team/moy/tap-1.4/Makefile Fri Dec 31 11:48:09 2010
@@ -83,7 +83,7 @@
 	rose_qsig_mwi.lo \
 	rose_qsig_name.lo \
 	version.lo
-CFLAGS=-Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -g -fPIC $(ALERTING) $(LIBPRI_COUNTERS) $(LIBPRI_OPT)
+CFLAGS=-Wall -Werror -Wstrict-prototypes -Wmissing-prototypes -ggdb3 -fPIC $(ALERTING) $(LIBPRI_COUNTERS) $(LIBPRI_OPT)
 INSTALL_PREFIX=$(DESTDIR)
 INSTALL_BASE=/usr
 libdir?=$(INSTALL_BASE)/lib
@@ -116,7 +116,7 @@
 PROC=ultrasparc
 LIBPRI_OPT = -mtune=$(PROC) -O3 -pipe -fomit-frame-pointer -mcpu=v8
 else
-LIBPRI_OPT = -O2
+LIBPRI_OPT = -O0
 endif
 
 all: $(STATIC_LIBRARY) $(DYNAMIC_LIBRARY)

Modified: team/moy/tap-1.4/libpri.h
URL: http://svnview.digium.com/svn/libpri/team/moy/tap-1.4/libpri.h?view=diff&rev=2177&r1=2176&r2=2177
==============================================================================
--- team/moy/tap-1.4/libpri.h (original)
+++ team/moy/tap-1.4/libpri.h Fri Dec 31 11:48:09 2010
@@ -809,6 +809,7 @@
 
 #define PRI_DESTROYCALL
 void pri_destroycall(struct pri *pri, q931_call *call);
+void pri_passive_destroycall(struct pri *pri, q931_call *call);
 
 #define PRI_RESTART
 int pri_restart(struct pri *pri);

Modified: team/moy/tap-1.4/pri.c
URL: http://svnview.digium.com/svn/libpri/team/moy/tap-1.4/pri.c?view=diff&rev=2177&r1=2176&r2=2177
==============================================================================
--- team/moy/tap-1.4/pri.c (original)
+++ team/moy/tap-1.4/pri.c Fri Dec 31 11:48:09 2010
@@ -582,6 +582,15 @@
 	return;
 }
 
+void pri_passive_destroycall(struct pri *pri, q931_call *call)
+{
+	if (pri && call) {
+		call->magic = 0xDEADDEAD;
+		__q931_destroycall(pri, call);
+	}
+	return;
+}
+
 int pri_need_more_info(struct pri *pri, q931_call *call, int channel, int nonisdn)
 {
 	if (!pri || !call)

Modified: team/moy/tap-1.4/pri_internal.h
URL: http://svnview.digium.com/svn/libpri/team/moy/tap-1.4/pri_internal.h?view=diff&rev=2177&r1=2176&r2=2177
==============================================================================
--- team/moy/tap-1.4/pri_internal.h (original)
+++ team/moy/tap-1.4/pri_internal.h Fri Dec 31 11:48:09 2010
@@ -335,6 +335,7 @@
 
 /* q931_call datastructure */
 struct q931_call {
+	int magic;
 	struct pri *pri;	/* PRI */
 	int cr;				/* Call Reference */
 	q931_call *next;

Modified: team/moy/tap-1.4/q931.c
URL: http://svnview.digium.com/svn/libpri/team/moy/tap-1.4/q931.c?view=diff&rev=2177&r1=2176&r2=2177
==============================================================================
--- team/moy/tap-1.4/q931.c (original)
+++ team/moy/tap-1.4/q931.c Fri Dec 31 11:48:09 2010
@@ -3056,6 +3056,10 @@
 	if (!cur) {
 		return NULL;
 	}
+	if (ctrl->debug & PRI_DEBUG_Q931_STATE) {
+		pri_message(ctrl, "-- Created new call %p for cr %d\n", cur, cr);
+		cur->magic = 0xDEADBEEF;
+	}
 
 	/* Initialize call structure. */
 	cur->cr = cr;
@@ -3143,17 +3147,28 @@
 	cur = *ctrl->callpool;
 	while(cur) {
 		if ((c && (cur == c)) || (!c && (cur->cr == cr))) {
+
+			if (cur->magic != 0xDEADDEAD) {
+				pri_message(ctrl,
+					"NEW_HANGUP DEBUG: NOT Destroying the call %d (%p), ourstate %s, peerstate %s with magic %d\n",
+					cr, cur, q931_call_state_str(cur->ourcallstate),
+					q931_call_state_str(cur->peercallstate), cur->magic);
+				return;
+			}
+
 			if (prev)
 				prev->next = cur->next;
 			else
 				*ctrl->callpool = cur->next;
-			if (ctrl->debug & PRI_DEBUG_Q931_STATE)
+			if (ctrl->debug & PRI_DEBUG_Q931_STATE) {
 				pri_message(ctrl,
-					"NEW_HANGUP DEBUG: Destroying the call, ourstate %s, peerstate %s\n",
-					q931_call_state_str(cur->ourcallstate),
+					"NEW_HANGUP DEBUG: Destroying the call %d (%p), ourstate %s, peerstate %s\n",
+					cr, cur, q931_call_state_str(cur->ourcallstate),
 					q931_call_state_str(cur->peercallstate));
+			}
 			pri_schedule_del(ctrl, cur->retranstimer);
 			pri_call_apdu_queue_cleanup(cur);
+			cur->magic = 0x0;
 			free(cur);
 			return;
 		}
@@ -5033,10 +5048,10 @@
 		ctrl->ev.hangup.aoc_units = c->aoc_units;
 		libpri_copy_string(ctrl->ev.hangup.useruserinfo, c->useruserinfo, sizeof(ctrl->ev.hangup.useruserinfo));
 		c->useruserinfo[0] = '\0';
-		if (c->alive)
+		//if (c->alive)
 			return Q931_RES_HAVEEVENT;
-		else
-			q931_hangup(ctrl,c,c->cause);
+		//else
+		//	q931_hangup(ctrl,c,c->cause);
 		break;
 	case Q931_RESTART_ACKNOWLEDGE:
 		UPDATE_OURCALLSTATE(ctrl, c, Q931_CALL_STATE_NULL);




More information about the libpri-commits mailing list