MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / add_clusterer_node

Function add_clusterer_node

modules/clusterer/node_info.c:981–1032  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

979}
980
981static int add_clusterer_node(clusterer_node_t **cl_node_list, node_info_t *n_info)
982{
983 clusterer_node_t *new_node = NULL;
984
985 new_node = pkg_malloc(sizeof *new_node);
986 if (!new_node) {
987 LM_ERR("no more pkg memory\n");
988 goto error;
989 }
990
991 new_node->node_id = n_info->node_id;
992
993 if (n_info->description.s) {
994 new_node->description.s = pkg_malloc(n_info->description.len * sizeof(char));
995 if (!new_node->description.s) {
996 LM_ERR("no more pkg memory\n");
997 goto error;
998 }
999 new_node->description.len = n_info->description.len;
1000 memcpy(new_node->description.s, n_info->description.s, n_info->description.len);
1001 } else {
1002 new_node->description.s = NULL;
1003 new_node->description.len = 0;
1004 }
1005
1006 if (n_info->sip_addr.s) {
1007 new_node->sip_addr.s = pkg_malloc(n_info->sip_addr.len * sizeof(char));
1008 if (!new_node->sip_addr.s) {
1009 LM_ERR("no more pkg memory\n");
1010 goto error;
1011 }
1012 new_node->sip_addr.len = n_info->sip_addr.len;
1013 memcpy(new_node->sip_addr.s, n_info->sip_addr.s, n_info->sip_addr.len);
1014 } else {
1015 new_node->sip_addr.s = NULL;
1016 new_node->sip_addr.len = 0;
1017 }
1018
1019 memcpy(&new_node->addr, &n_info->addr, sizeof(n_info->addr));
1020 new_node->next = NULL;
1021
1022 if (*cl_node_list)
1023 new_node->next = *cl_node_list;
1024
1025 *cl_node_list = new_node;
1026 return 0;
1027
1028error:
1029 if (new_node)
1030 free_clusterer_node(new_node);
1031 return -1;
1032}
1033
1034void free_clusterer_nodes(clusterer_node_t *nodes)
1035{

Callers 2

get_clusterer_nodesFunction · 0.85
api_get_next_hopFunction · 0.85

Calls 1

free_clusterer_nodeFunction · 0.85

Tested by

no test coverage detected