summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2010-07-20 12:23:08 +0200
committerHarald Welte <laforge@gnumonks.org>2010-07-20 12:23:08 +0200
commitfa4f469558a15b616d5e96858da73d59e1a2e9e0 (patch)
tree21664143dec87fc1d70004f02f61626c5caae3c0
parent933af61ba590a026cf9e0f6eba6af290bca421de (diff)
actually call the DER encoder for TC-END message
-rw-r--r--src/tsl_tsm.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/tsl_tsm.c b/src/tsl_tsm.c
index a9732a0..c66c1ce 100644
--- a/src/tsl_tsm.c
+++ b/src/tsl_tsm.c
@@ -141,6 +141,7 @@ int tcap_tsm_end_trans(struct tcap_transaction *tt, struct TCMessage *tcmsg)
{
struct tcap_dialogue *td = dialg_by_trans(tt);
struct msgb *msg;
+ asn_enc_rval_t ar;
int rc;
switch (tt->state) {
@@ -149,6 +150,18 @@ int tcap_tsm_end_trans(struct tcap_transaction *tt, struct TCMessage *tcmsg)
if (1 /* FIXME: !prearranged */) {
/* FIXME: Assemble TR-portion of END message */
msg = tcap_msgb_alloc();
+ fprintf(stdout, "TC-CONTINUE.req:\n");
+ xer_fprint(stdout, &asn_DEF_TCMessage, tcmsg);
+
+ /* Assemble TR-portion of CONTINUE message */
+ ar = der_encode_to_buffer(&asn_DEF_TCMessage, tcmsg, msg->data, msgb_tailroom(msg));
+ if (ar.encoded < 0) {
+ fprintf(stdout, "some error during encode\n");
+ msgb_free(msg);
+ return -EIO;
+ }
+ msgb_put(msg, ar.encoded);
+
/* Send N-UNITDATA.req to SCCP / SUA */
rc = tcap_scXp_n_unitdata_req(td->transp_ent, msg);
}