aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--library/BSSMAP_Emulation.ttcn18
1 files changed, 10 insertions, 8 deletions
diff --git a/library/BSSMAP_Emulation.ttcn b/library/BSSMAP_Emulation.ttcn
index 9e4d5c3e..5cf53423 100644
--- a/library/BSSMAP_Emulation.ttcn
+++ b/library/BSSMAP_Emulation.ttcn
@@ -145,12 +145,8 @@ runs on BSSMAP_Emulation_CT {
}
/* handle (optional) userData portion of various primitives and dispatch it to the client */
-private function f_handle_userData(BSSAP_ConnHdlr client, template octetstring userdata)
+private function f_handle_userData(BSSAP_ConnHdlr client, octetstring userdata)
runs on BSSMAP_Emulation_CT {
- if (not isvalue(userdata)) {
- return;
- }
-
/* decode + send decoded BSSAP to client */
var PDU_BSSAP bssap := dec_PDU_BSSAP(valueof(userdata));
CLIENT.send(bssap) to client;
@@ -212,13 +208,17 @@ function main(BssmapOps ops) runs on BSSMAP_Emulation_CT {
/* SCCP -> Client: connection-oriented data in existing connection */
[] SCCP.receive(ASP_SCCP_N_DATA_ind:?) -> value data_ind {
vc_conn := f_comp_by_conn_id(data_ind.connectionId);
- f_handle_userData(vc_conn, conn_ind.userData);
+ if (ispresent(data_ind.userData)) {
+ f_handle_userData(vc_conn, data_ind.userData);
+ }
}
/* SCCP -> Client: disconnect of an existing connection */
[] SCCP.receive(ASP_SCCP_N_DISCONNECT_ind:?) -> value disc_ind {
vc_conn := f_comp_by_conn_id(disc_ind.connectionId);
- f_handle_userData(vc_conn, disc_ind.userData);
+ if (ispresent(disc_ind.userData)) {
+ f_handle_userData(vc_conn, disc_ind.userData);
+ }
/* notify client about termination */
var BSSAP_Conn_Prim prim := MSC_CONN_PRIM_DISC_IND;
CLIENT.send(prim) to vc_conn;
@@ -229,7 +229,9 @@ function main(BssmapOps ops) runs on BSSMAP_Emulation_CT {
/* SCCP -> Client: connection confirm for outbound connection */
[] SCCP.receive(ASP_SCCP_N_CONNECT_cfm:?) -> value conn_cfm {
/* handle user payload */
- f_handle_userData(vc_conn, conn_cfm.userData);
+ if (ispresent(conn_cfm.userData)) {
+ f_handle_userData(vc_conn, conn_cfm.userData);
+ }
}
/* Disconnect request client -> SCCP */