aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/mtp_data.h3
-rw-r--r--src/isup.c5
-rw-r--r--src/main_stp.c4
3 files changed, 12 insertions, 0 deletions
diff --git a/include/mtp_data.h b/include/mtp_data.h
index 652c024..95d54bd 100644
--- a/include/mtp_data.h
+++ b/include/mtp_data.h
@@ -67,6 +67,9 @@ struct mtp_link_set {
struct llist_head links;
struct mtp_link *slc[16];
+ /* special handling */
+ int pass_all_isup;
+
/* custom data */
struct bsc_data *bsc;
};
diff --git a/src/isup.c b/src/isup.c
index 33f1fdb..6e9e359 100644
--- a/src/isup.c
+++ b/src/isup.c
@@ -120,6 +120,11 @@ int mtp_link_set_isup(struct mtp_link_set *link, struct msgb *msg, int sls)
return -1;
}
+ if (link->pass_all_isup) {
+ mtp_link_set_forward_isup(link, msg, sls);
+ return 0;
+ }
+
hdr = (struct isup_msg_hdr *) msg->l3h;
payload_size = msgb_l3len(msg) - sizeof(*hdr);
diff --git a/src/main_stp.c b/src/main_stp.c
index fb10ea3..4f93416 100644
--- a/src/main_stp.c
+++ b/src/main_stp.c
@@ -246,6 +246,10 @@ int main(int argc, char **argv)
bsc.m2ua_set->ni = 3;
bsc.m2ua_set->bsc = &bsc;
+ /* for both links we want to have all isup messages */
+ bsc.m2ua_set->pass_all_isup = 1;
+ bsc.link_set->pass_all_isup = 1;
+
lnk = sctp_m2ua_transp_create("0.0.0.0", 2904);
lnk->base.pcap_fd = -1;
lnk->base.the_link = bsc.m2ua_set;