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

Function clean_cc_old_data

modules/call_center/cc_data.c:916–995  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

914
915
916void clean_cc_old_data(struct cc_data *data)
917{
918 struct cc_skill *skill, **prv_skill;
919 struct cc_agent *agent, **prv_agent;
920 struct cc_flow *flow, **prv_flow;
921 int i;
922
923 /* clean old skills */
924 skill = data->skills_map;
925 prv_skill = &(data->skills_map);
926 while(skill) {
927 if (skill->is_new) {
928 skill->is_new = 0;
929 prv_skill = &(skill->next);
930 skill = skill->next;
931 } else {
932 *prv_skill = skill->next;
933 free_cc_skill(skill);
934 skill = (*prv_skill);
935 }
936 }
937
938 /* clean old agents */
939 for(i= 0; i< 2; i++) {
940 agent = data->agents[i];
941 prv_agent = &data->agents[i];
942 while(agent) {
943 if (agent->is_new) {
944 agent->is_new = 0;
945 prv_agent = &(agent->next);
946 agent = agent->next;
947 } else {
948 *prv_agent = agent->next;
949 if (agent->ref_cnt==0) {
950 free_cc_agent(agent);
951 } else {
952 agent->next = data->old_agents;
953 data->old_agents = agent;
954 }
955 agent = (*prv_agent);
956 data->totalnr_agents--;
957 }
958 }
959 }
960
961 /* clean old flows */
962 flow = data->flows;
963 prv_flow = &(data->flows);
964 while(flow) {
965 flow->logged_agents = 0;
966 if (flow->is_new) {
967 flow->is_new = 0;
968 prv_flow = &(flow->next);
969 flow = flow->next;
970 } else {
971 *prv_flow = flow->next;
972 if (flow->ref_cnt==0) {
973 free_cc_flow(flow);

Callers 2

mod_initFunction · 0.85
mi_cc_reloadFunction · 0.85

Calls 4

free_cc_skillFunction · 0.85
free_cc_agentFunction · 0.85
free_cc_flowFunction · 0.85
log_agent_to_flowsFunction · 0.85

Tested by

no test coverage detected