blob: 41df4f27940270f5dfd37c7124af9256791e030d [file] [log] [blame]
#include <asn1c/ANY.h>
#include "../rua_ies_defs.h"
struct ranap_message_s;
typedef void (*ranap_handle_cb)(void *ctx, struct ranap_message_s *ranap_msg);
extern void ranap_msg_dt_print(void *ctx, struct ranap_message_s *ranap_msg);
extern void ranap_msg_dt_get(void *ctx, struct ranap_message_s *ranap_msg);
static void direct_transfer_nas_pdu_handle(ANY_t *in, ranap_handle_cb handler, void *ctx)
{
RUA_DirectTransferIEs_t ies;
int rc;
rc = rua_decode_directtransferies(&ies, in);
if (rc < 0) {
printf("print_rua_init_dt(): failed to decode rua IEs\n");
return;
}
rc = ranap_cn_rx_co(handler, ctx, ies.ranaP_Message.buf, ies.ranaP_Message.size);
/* FIXME: what to do with the asn1c-allocated memory */
rua_free_directtransferies(&ies);
}
void direct_transfer_nas_pdu_print(ANY_t *in)
{
direct_transfer_nas_pdu_handle(in, ranap_msg_dt_print, NULL);
}
void direct_transfer_nas_pdu_get(ANY_t *in, struct msgb *m)
{
direct_transfer_nas_pdu_handle(in, ranap_msg_dt_get, m);
}