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

SVN commits to the libss7 project libss7-commits at lists.digium.com
Sat Dec 6 11:03:41 CST 2008


Author: mattf
Date: Sat Dec  6 11:03:39 2008
New Revision: 232

URL: http://svn.digium.com/view/libss7?view=rev&rev=232
Log:
Add a new point code to string function and fix a bug in finding a link where two links have the same point code

Modified:
    team/mattf/bug13495/libss7.h
    team/mattf/bug13495/mtp2.c
    team/mattf/bug13495/mtp3.c
    team/mattf/bug13495/ss7.c

Modified: team/mattf/bug13495/libss7.h
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/libss7.h?view=diff&rev=232&r1=231&r2=232
==============================================================================
--- team/mattf/bug13495/libss7.h (original)
+++ team/mattf/bug13495/libss7.h Sat Dec  6 11:03:39 2008
@@ -608,4 +608,6 @@
 void mtp3_init_restart(struct ss7 *ss7, int slc);
 
 int ss7_set_mtp3_timer(struct ss7 *ss7, char *name, int ms);
+
+void ss7_pc_to_str(int ss7type, unsigned int pc, char *str);
 #endif /* _LIBSS7_H */

Modified: team/mattf/bug13495/mtp2.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/mtp2.c?view=diff&rev=232&r1=231&r2=232
==============================================================================
--- team/mattf/bug13495/mtp2.c (original)
+++ team/mattf/bug13495/mtp2.c Sat Dec  6 11:03:39 2008
@@ -514,6 +514,7 @@
 int mtp2_setstate(struct mtp2 *link, int newstate)
 {
 	ss7_event *e;
+	int i;
 
 	if (link->master->debug & SS7_DEBUG_MTP2)
 		mtp_message(link->master, "Link state change: %s -> %s\n", linkstate2str(link->state), linkstate2str(newstate));
@@ -619,7 +620,12 @@
 						return -1;
 					}
 					e->gen.e = MTP2_LINK_UP;
-					e->gen.data = link->slc;
+					for (i = 0; i < link->master->numlinks; i++) {
+						if (link->master->links[i] == link) {
+							e->gen.data = i;
+							break;
+						}
+					}
 					break;
 				default:
 					mtp_error(link->master, "Don't know how to handle state change from %d to %d\n", link->state, newstate);
@@ -635,7 +641,12 @@
 					return -1;
 				}
 				e->gen.e = MTP2_LINK_DOWN;
-				e->gen.data = link->slc;
+				for (i = 0; i < link->master->numlinks; i++) {
+					if (link->master->links[i] == link) {
+						e->gen.data = i;
+						break;
+					}
+				}
 				return to_idle(link);
 			}
 			break;
@@ -819,6 +830,7 @@
 	struct mtp_su_head *h = (struct mtp_su_head *)buf;
 	unsigned char mtype;
 	char *mtypech = NULL;
+	char pc_str[64];
 
 	if (!(link->master->debug & SS7_DEBUG_MTP2))
 		return;
@@ -849,7 +861,9 @@
 			ss7_message(link->master, "FSN: %d FIB %d\n", h->fsn, h->fib);
 			ss7_message(link->master, "BSN: %d BIB %d\n", h->bsn, h->bib);
 
-			ss7_message(link->master, "%c[%d] FISU\n", prefix, link->slc);
+			ss7_pc_to_str(link->master->switchtype, link->adj_sp->adjpc, pc_str);
+
+			ss7_message(link->master, "%c[%s:%d] FISU\n", prefix, pc_str, link->slc);
 			break; 
 		case 1:
 			if (prefix == '<' && link->lastsurxd == h->data[0])

Modified: team/mattf/bug13495/mtp3.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/mtp3.c?view=diff&rev=232&r1=231&r2=232
==============================================================================
--- team/mattf/bug13495/mtp3.c (original)
+++ team/mattf/bug13495/mtp3.c Sat Dec  6 11:03:39 2008
@@ -1811,6 +1811,18 @@
 	return link;
 }
 
+static struct mtp2 * mtp2_event_to_mtp2(struct ss7 *ss7, unsigned int link_index)
+{
+	struct mtp2 *link = NULL;
+
+	link = ss7->links[link_index];
+	if (!link) {
+		ss7_error(ss7, "Badness! could not find MTP2 link from MTP2 event\n");
+	}
+
+	return link;
+}
+
 ss7_event * mtp3_process_event(struct ss7 *ss7, ss7_event *e)
 {
 	struct mtp2 *link;
@@ -1821,11 +1833,11 @@
 
 	switch (e->e) {
 		case MTP2_LINK_UP:
-			link = slc_to_mtp2(ss7, e->gen.data);
+			link = mtp2_event_to_mtp2(ss7, e->gen.data);
 			mtp3_event_link_up(link);
 			return e;
 		case MTP2_LINK_DOWN:
-			link = slc_to_mtp2(ss7, e->gen.data);
+			link = mtp2_event_to_mtp2(ss7, e->gen.data);
 			mtp3_event_link_down(link);
 			return e;
 		default:

Modified: team/mattf/bug13495/ss7.c
URL: http://svn.digium.com/view/libss7/team/mattf/bug13495/ss7.c?view=diff&rev=232&r1=231&r2=232
==============================================================================
--- team/mattf/bug13495/ss7.c (original)
+++ team/mattf/bug13495/ss7.c Sat Dec  6 11:03:39 2008
@@ -549,6 +549,15 @@
 	}
 }
 
+void ss7_pc_to_str(int ss7type, unsigned int pc, char *str)
+{
+	if (ss7type == SS7_ITU) {
+		sprintf(str, "%d", pc);
+	} else {
+		sprintf(str, "%d-%d-%d", (pc >> 16) & 0xff, (pc >> 8) & 0xff, pc & 0xff);
+	}
+}
+
 void ss7_show_linkset(struct ss7 *ss7, void (* cust_printf)(int fd, const char *format, ...), int fd)
 {
 	int j, i, x;
@@ -610,3 +619,4 @@
 		} /* links */
 	} /* sps */
 }
+




More information about the libss7-commits mailing list