aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2019-05-11 10:58:15 +0200
committerHarald Welte <laforge@gnumonks.org>2019-05-11 11:09:09 +0200
commit0622a9f7b608fe19376be5f1fb6378df2535cabc (patch)
treed5d4557c1c6d9e0d703200114b5beb50f51764f7
parent1e5a02d7667eba174db96cb56273d767083e87cd (diff)
Make f_gen_tr_ss_ies() work for both 'latest' and 'master'
This fixes the partial revert of c43c8cd275b4f71b0bc6a50fc81564c812d5b406 to work for both situtions: Messages that have the OSMO_GSUP_MESSAGE_CLASS_USSD and messages that don't. The particular implementation is rather ugly, but we're waiting for a response to https://www.eclipse.org/forums/index.php/t/1098847/ on how to solve this kind of problem in a more elegant way. Meanwile, we make it work first. Change-Id: Ibf137de6a41aaa43894cc0b6da8341ceb88b0756
-rw-r--r--library/GSUP_Types.ttcn10
1 files changed, 9 insertions, 1 deletions
diff --git a/library/GSUP_Types.ttcn b/library/GSUP_Types.ttcn
index 7e26e19f..44b9f268 100644
--- a/library/GSUP_Types.ttcn
+++ b/library/GSUP_Types.ttcn
@@ -1091,15 +1091,23 @@ private function f_gen_tr_ss_ies(
tr_GSUP_IE_SessionId(sid),
tr_GSUP_IE_SessionState(state)
};
+ var integer last_idx := 3;
/* Optional SS payload */
if (istemplatekind(ss, "*")) {
ies[3] := *;
+ last_idx := last_idx + 1;
} else if (not istemplatekind(ss, "omit")) {
ies[3] := tr_GSUP_IE_SSInfo(ss);
+ last_idx := last_idx + 1;
}
- return ies;
+ /* the GSUP Message Class IE is optional, as old implementations don't have it yet */
+ var template GSUP_IEs ies2 := ies;
+ ies2[last_idx] := tr_GSUP_IE_Message_Class(OSMO_GSUP_MESSAGE_CLASS_USSD);
+ last_idx := last_idx + 1;
+
+ return (ies, ies2);
}
template (value) GSUP_PDU ts_GSUP_PROC_SS_REQ(