diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-07-20 12:23:08 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-07-20 12:23:08 +0200 |
commit | fa4f469558a15b616d5e96858da73d59e1a2e9e0 (patch) | |
tree | 21664143dec87fc1d70004f02f61626c5caae3c0 | |
parent | 933af61ba590a026cf9e0f6eba6af290bca421de (diff) |
actually call the DER encoder for TC-END message
-rw-r--r-- | src/tsl_tsm.c | 13 |
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); } |