X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=ntsimulator%2Fsrc%2Fves-messages%2Fheartbeat.c;h=09d7e0255f92ceecd7b280ea6196e11d31d9390a;hb=7dbf479029ba8bc528fb61a40ab2647489da28e9;hp=a5785e52f606e86113568bb71941112fe68ef56e;hpb=0c00182421feb00a63a76555844dba5b72639b8e;p=sim%2Fo1-interface.git diff --git a/ntsimulator/src/ves-messages/heartbeat.c b/ntsimulator/src/ves-messages/heartbeat.c index a5785e5..09d7e02 100644 --- a/ntsimulator/src/ves-messages/heartbeat.c +++ b/ntsimulator/src/ves-messages/heartbeat.c @@ -65,24 +65,6 @@ int cleanup_curl() return SR_ERR_OK; } -//static void prepare_ves_message_curl(void) -//{ -// curl_easy_reset(curl); -// set_curl_common_info(); -// -// char *ves_ip = getVesIpFromConfigJson(); -// int ves_port = getVesPortFromConfigJson(); -// -// char url[100]; -// sprintf(url, "http://%s:%d/eventListener/v7", ves_ip, ves_port); -// curl_easy_setopt(curl, CURLOPT_URL, url); -// -// free(ves_ip); -// -//// curl_easy_setopt(curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); -// -// return; -//} /* * Heartbeat payload example * @@ -127,6 +109,11 @@ static int send_heartbeat(int heartbeat_interval) prepare_ves_message_curl(curl); cJSON *postDataJson = cJSON_CreateObject(); + if (postDataJson == NULL) + { + printf("Could not create JSON object: postDataJson\n"); + return 1; + } cJSON *event = cJSON_CreateObject(); if (event == NULL) @@ -143,6 +130,7 @@ static int send_heartbeat(int heartbeat_interval) if (commonEventHeader == NULL) { printf("Could not create JSON object: commonEventHeader\n"); + cJSON_Delete(postDataJson); return 1; } cJSON_AddItemToObject(event, "commonEventHeader", commonEventHeader); @@ -151,6 +139,7 @@ static int send_heartbeat(int heartbeat_interval) if (heartbeatFields == NULL) { printf("Could not create JSON object: heartbeatFields\n"); + cJSON_Delete(postDataJson); return 1; } cJSON_AddItemToObject(event, "heartbeatFields", heartbeatFields); @@ -172,7 +161,6 @@ static int send_heartbeat(int heartbeat_interval) if (res != CURLE_OK) { - printf("Failed to send cURL...\n"); return SR_ERR_OPERATION_FAILED; } @@ -193,11 +181,17 @@ static int send_pnf_registration_instance(char *hostname, int port, bool is_tls) prepare_ves_message_curl(curl); cJSON *postDataJson = cJSON_CreateObject(); + if (postDataJson == NULL) + { + printf("Could not create JSON object: postDataJson\n"); + return 1; + } cJSON *event = cJSON_CreateObject(); if (event == NULL) { printf("Could not create JSON object: event\n"); + cJSON_Delete(postDataJson); return 1; } cJSON_AddItemToObject(postDataJson, "event", event); @@ -209,6 +203,7 @@ static int send_pnf_registration_instance(char *hostname, int port, bool is_tls) if (commonEventHeader == NULL) { printf("Could not create JSON object: commonEventHeader\n"); + cJSON_Delete(postDataJson); return 1; } cJSON_AddItemToObject(event, "commonEventHeader", commonEventHeader); @@ -217,6 +212,7 @@ static int send_pnf_registration_instance(char *hostname, int port, bool is_tls) if (pnfRegistrationFields == NULL) { printf("Could not create JSON object: pnfRegistrationFields\n"); + cJSON_Delete(postDataJson); return 1; } cJSON_AddItemToObject(event, "pnfRegistrationFields", pnfRegistrationFields); @@ -245,7 +241,7 @@ static int send_pnf_registration_instance(char *hostname, int port, bool is_tls) return SR_ERR_OK; } -static void pnf_registration(void) +static void *pnf_registration(void *arg) { // delay the PNF Registration VES message, until anything else is initialized printf("delay the PNF Registration VES message, until anything else is initialized"); @@ -257,25 +253,17 @@ static void pnf_registration(void) { //ves-registration object is set to False, we do not make an automatic PNF registration printf("ves-registration object is set to False, we do not make an automatic PNF registration"); - return; + return NULL; } int rc = SR_ERR_OK, netconf_port_base = 0; - char *netconf_base_string = getenv("NETCONF_BASE"); char *hostname_string = getenv("HOSTNAME"); + int port = 0; - if (netconf_base_string != NULL) - { - rc = sscanf(netconf_base_string, "%d", &netconf_port_base); - if (rc != 1) - { - printf("Could not find the NETCONF base port, aborting the PNF registration...\n"); - return; - } - } + netconf_port_base = getIntFromString(getenv("NETCONF_BASE"), 0); //TODO This is where we hardcoded: 7 devices will have SSH connections and 3 devices will have TLS connections - for (int port = 0; port < NETCONF_CONNECTIONS_PER_DEVICE - 3; ++port) + for (int i = 0; i < SSH_CONNECTIONS_PER_DEVICE; ++port, ++i) { pthread_mutex_lock(&lock); rc = send_pnf_registration_instance(hostname_string, netconf_port_base + port, FALSE); @@ -285,7 +273,7 @@ static void pnf_registration(void) } pthread_mutex_unlock(&lock); } - for (int port = NETCONF_CONNECTIONS_PER_DEVICE - 3; port < NETCONF_CONNECTIONS_PER_DEVICE; ++port) + for (int i = 0; port < TLS_CONNECTIONS_PER_DEVICE; ++port, ++i) { pthread_mutex_lock(&lock); rc = send_pnf_registration_instance(hostname_string, netconf_port_base + port, TRUE); @@ -296,7 +284,7 @@ static void pnf_registration(void) } } - return; + return NULL; } int