X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=e2sim%2Fsrc%2Fbase%2Fe2sim.cpp;h=e28cbd4a985657f2e921306b741dbb9c200bf116;hb=417a0f7a4a7e90ebfb069908e6adb612a39e233d;hp=1f74389fd873478910c5e9ac8c7fd613338a8eda;hpb=a9733dbcc47e93a3b2843056f1d587196296c324;p=sim%2Fe2-interface.git diff --git a/e2sim/src/base/e2sim.cpp b/e2sim/src/base/e2sim.cpp old mode 100644 new mode 100755 index 1f74389..e28cbd4 --- a/e2sim/src/base/e2sim.cpp +++ b/e2sim/src/base/e2sim.cpp @@ -1,6 +1,7 @@ /***************************************************************************** # * # Copyright 2020 AT&T Intellectual Property * +# Copyright (c) 2020 Samsung Electronics Co., Ltd. All Rights Reserved. * # * # Licensed under the Apache License, Version 2.0 (the "License"); * # you may not use this file except in compliance with the License. * @@ -33,15 +34,25 @@ using namespace std; int client_fd = 0; +std::unordered_map E2Sim::getRegistered_ran_functions() { + return ran_functions_registered; +} + void E2Sim::register_subscription_callback(long func_id, SubscriptionCallback cb) { - printf("%%%%about to register callback for subscription for func_id %d\n", func_id); + fprintf(stderr,"%%%%about to register callback for subscription for func_id %d\n", func_id); subscription_callbacks[func_id] = cb; } SubscriptionCallback E2Sim::get_subscription_callback(long func_id) { - printf("%%%%we are getting the subscription callback for func id %d\n", func_id); - SubscriptionCallback cb = subscription_callbacks[func_id]; + fprintf(stderr, "%%%%we are getting the subscription callback for func id %d\n", func_id); + SubscriptionCallback cb; + + try { + cb = subscription_callbacks.at(func_id); + } catch(const std::out_of_range& e) { + throw std::out_of_range("Function ID is not registered"); + } return cb; } @@ -65,6 +76,7 @@ void E2Sim::encode_and_send_sctp_data(E2AP_PDU_t* pdu) data.len = e2ap_asn1c_encode_pdu(pdu, &buf); memcpy(data.buffer, buf, min(data.len, MAX_SCTP_BUFFER)); + if (buf) free(buf); sctp_send_data(client_fd, data); } @@ -154,7 +166,7 @@ int E2Sim::run_loop(int argc, char* argv[]){ sctp_buffer_t data; - char *error_buf = (char*)calloc(300, sizeof(char)); + char error_buf[300] = {0, }; size_t errlen; asn_check_constraints(&asn_DEF_E2AP_PDU, pdu_setup, error_buf, &errlen);