void sfl_agent_resetReceiver(SFLAgent *agent, SFLReceiver *receiver) { SFLReceiver *rcv; SFLSampler *sm; SFLPoller *pl; /* tell samplers and pollers to stop sending to this receiver */ /* first get his receiverIndex */ u_int32_t rcvIdx = 0; for(rcv = agent->receivers; rcv != NULL; rcv = rcv->nxt) if(rcv == receiver) break; /* now tell anyone that is using it to stop */ for(sm = agent->samplers; sm != NULL; sm = sm->nxt) if(sfl_sampler_get_sFlowFsReceiver(sm) == rcvIdx) sfl_sampler_set_sFlowFsReceiver(sm, 0); for(pl = agent->pollers; pl != NULL; pl = pl->nxt) if(sfl_poller_get_sFlowCpReceiver(pl) == rcvIdx) sfl_poller_set_sFlowCpReceiver(pl, 0); }
void sfl_agent_resetReceiver(SFLAgent *agent, SFLReceiver *receiver) { /* tell samplers and pollers to stop sending to this receiver */ /* first get his receiverIndex */ u_int32_t rcvIdx = 0; SFLReceiver *rcv = agent->receivers; for(; rcv != NULL; rcv = rcv->nxt) { rcvIdx++; /* thanks to Diego Valverde for pointing out this bugfix */ if(rcv == receiver) { /* now tell anyone that is using it to stop */ SFLSampler *sm = agent->samplers; SFLPoller *pl = agent->pollers; for(; sm != NULL; sm = sm->nxt) if(sfl_sampler_get_sFlowFsReceiver(sm) == rcvIdx) sfl_sampler_set_sFlowFsReceiver(sm, 0); for(; pl != NULL; pl = pl->nxt) if(sfl_poller_get_sFlowCpReceiver(pl) == rcvIdx) sfl_poller_set_sFlowCpReceiver(pl, 0); break; } } }