[libss7-commits] mattf: branch mattf/bug13495 r248 - /team/mattf/bug13495/

SVN commits to the libss7 project libss7-commits at lists.digium.com
Wed Dec 24 17:20:02 CST 2008


Author: mattf
Date: Wed Dec 24 17:20:01 2008
New Revision: 248

URL: http://svn.digium.com/view/libss7?view=rev&rev=248
Log:
Milestone reached.  Able to forward messages to the given client properly with ISUP TCP masquerading

Modified:
    team/mattf/bug13495/isup.c
    team/mattf/bug13495/isup_masq.c
    team/mattf/bug13495/mtp3.c
    team/mattf/bug13495/ss7.c

Modified: team/mattf/bug13495/isup.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/isup.c?view=diff&rev=248&r1=247&r2=248
==============================================================================
--- team/mattf/bug13495/isup.c (original)
+++ team/mattf/bug13495/isup.c Wed Dec 24 17:20:01 2008
@@ -3160,8 +3160,6 @@
 
 
 	mh = (struct isup_h*) buf;
-	len -= 3; /* ISUP msg header size !*/
-	 
 	if (ss7->switchtype == SS7_ITU) {
 		cic = mh->cic[0] | ((mh->cic[1] & 0x0f) << 8);
 	} else {
@@ -3171,6 +3169,8 @@
 	if (isup_needs_masquerade(ss7, rl, cic, buf, len))
 		return 0;
 
+	len -= 3; /* ISUP msg header size !*/
+	 
 	/* Find us in the message list */
 	for (x = 0; x < sizeof(messages)/sizeof(struct message_data); x++)
 		if (messages[x].messagetype == mh->type)

Modified: team/mattf/bug13495/isup_masq.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/isup_masq.c?view=diff&rev=248&r1=247&r2=248
==============================================================================
--- team/mattf/bug13495/isup_masq.c (original)
+++ team/mattf/bug13495/isup_masq.c Wed Dec 24 17:20:01 2008
@@ -49,10 +49,13 @@
 
 	ss7_message(link->master, "%c\n", prefix);
 
+#if 0
 	if (prefix == '<')
 		mtp3_dump(link->master, NULL, &msg[1], len - 1);
 	else
 		mtp3_dump(link->master, NULL, &msg[0], len);
+#endif
+	mtp3_dump(link->master, NULL, &msg[1], len - 1);
 
 	return 0;
 }
@@ -254,7 +257,7 @@
 	if (masq_table->numentries >= ISUP_MASQ_MAX_ENTRIES)
 		return -1;
 
-	i = masq_table->numentries;
+	i = masq_table->numentries++;
 
 	masq_table->routes[i].startcic = startcic;
 	masq_table->routes[i].endcic = endcic;
@@ -280,11 +283,11 @@
 
 	txbuf[0] = 5; /* ISUP MESSAGE */
 	txbuf[1] = (link->master->ni << 6) | SIG_ISUP;
-	rlsize = set_routinglabel(&txbuf[1], rl);
-
-	memcpy(&txbuf[rlsize], buf, len);
-
-	isup_ip_send(link, txbuf, len);
+	rlsize = set_routinglabel(&txbuf[2], rl);
+
+	memcpy(&txbuf[2 + rlsize], buf, len);
+
+	isup_ip_send(link, txbuf, len + 2 + rlsize);
 
 	return 0;
 }

Modified: team/mattf/bug13495/mtp3.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/mtp3.c?view=diff&rev=248&r1=247&r2=248
==============================================================================
--- team/mattf/bug13495/mtp3.c (original)
+++ team/mattf/bug13495/mtp3.c Wed Dec 24 17:20:01 2008
@@ -1822,12 +1822,15 @@
 			return std_test_receive(ss7, link, sif, siflen);
 		case SIG_ISUP:
 			/* Skip the routing label */
+#if 0
 			if (link->adj_sp->state == MTP3_UP)
 				return isup_receive(ss7, link, &rl, sif + rlsize, siflen - rlsize);
 			else {
 				ss7_error(ss7, "Got ISUP message on link while MTP3 state is not UP!\n");
 				return 0;
 			}
+#endif
+			return isup_receive(ss7, link, &rl, sif + rlsize, siflen - rlsize);
 		case SIG_NET_MNG:
 			return net_mng_receive(ss7, link, &rl, sif, siflen);
 		case SIG_SCCP:

Modified: team/mattf/bug13495/ss7.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/ss7.c?view=diff&rev=248&r1=247&r2=248
==============================================================================
--- team/mattf/bug13495/ss7.c (original)
+++ team/mattf/bug13495/ss7.c Wed Dec 24 17:20:01 2008
@@ -500,11 +500,14 @@
 	if (winner != -1) {
 		if (ss7->links[winner]->flags & MTP2_FLAG_TCP) {
 			res = isup_ip_receive(ss7->links[winner]);
+			goto exit;
 		} else {
 			res = mtp2_receive(ss7->links[winner]);
-		}
-
-	}
+			goto exit;
+		}
+
+	}
+
 
 	/* Maybe it's a lite link */
 	for (i = 0; i < ss7->numslavelinks; i++) {
@@ -517,6 +520,8 @@
 	if (winner != -1) {
 		res = isup_ip_receive(ss7->links[winner]);
 	}
+
+exit:
 	
 
 	return res;




More information about the libss7-commits mailing list