From 511ef3a7ef5b1e64ec728aeeeea2e82c9369deb1 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Tue, 14 Jul 2020 15:39:32 +0300 Subject: [PATCH] Updated agents maxUsage flag handle --- agents/agentreq.go | 10 ++++++++++ agents/diamagent.go | 3 +-- agents/dnsagent.go | 3 +-- agents/httpagent.go | 3 +-- agents/radagent.go | 3 +-- 5 files changed, 14 insertions(+), 8 deletions(-) diff --git a/agents/agentreq.go b/agents/agentreq.go index 8caa2452f..8f5268be7 100644 --- a/agents/agentreq.go +++ b/agents/agentreq.go @@ -458,3 +458,13 @@ func (ar *AgentRequest) setCGRReply(rply utils.NavigableMapper, errRply error) ( *ar.CGRReply = nm // update value so we can share CGRReply return } + +func needsMaxUsage(ralsFlags []string) bool { + for _, flag := range ralsFlags { + if utils.IsSliceMember([]string{utils.MetaAuthorize, utils.MetaInitiate, utils.MetaUpdate}, + flag) { + return true + } + } + return false +} diff --git a/agents/diamagent.go b/agents/diamagent.go index 758612dc5..3dadc2538 100644 --- a/agents/diamagent.go +++ b/agents/diamagent.go @@ -388,11 +388,10 @@ func (da *DiameterAgent) processRequest(reqProcessor *config.RequestProcessor, ArgDispatcher: cgrArgs.ArgDispatcher, Paginator: *cgrArgs.SupplierPaginator, } - needMaxUsage := utils.IsSliceMember([]string{utils.MetaAuthorize, utils.MetaInitiate, utils.MetaUpdate}, - reqProcessor.Flags.ParamsSlice(utils.MetaRALs)[0]) rply := new(sessions.V1ProcessEventReply) err = da.connMgr.Call(da.cgrCfg.DiameterAgentCfg().SessionSConns, da, utils.SessionSv1ProcessEvent, evArgs, rply) + needMaxUsage := needsMaxUsage(reqProcessor.Flags.ParamsSlice(utils.MetaRALs)) if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) { cgrEv.Event[utils.Usage] = 0 // avoid further debits } else if needMaxUsage { diff --git a/agents/dnsagent.go b/agents/dnsagent.go index a5ffa9b8e..8d99f0f7a 100644 --- a/agents/dnsagent.go +++ b/agents/dnsagent.go @@ -314,12 +314,11 @@ func (da *DNSAgent) processRequest(reqProcessor *config.RequestProcessor, ArgDispatcher: cgrArgs.ArgDispatcher, Paginator: *cgrArgs.SupplierPaginator, } - needMaxUsage := utils.IsSliceMember([]string{utils.MetaAuthorize, utils.MetaInitiate, utils.MetaUpdate}, - reqProcessor.Flags.ParamsSlice(utils.MetaRALs)[0]) rply := new(sessions.V1ProcessEventReply) err = da.connMgr.Call(da.cgrCfg.DNSAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessEvent, evArgs, rply) + needMaxUsage := needsMaxUsage(reqProcessor.Flags.ParamsSlice(utils.MetaRALs)) if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) { cgrEv.Event[utils.Usage] = 0 // avoid further debits } else if needMaxUsage { diff --git a/agents/httpagent.go b/agents/httpagent.go index 72b9f1718..690a42374 100644 --- a/agents/httpagent.go +++ b/agents/httpagent.go @@ -244,11 +244,10 @@ func (ha *HTTPAgent) processRequest(reqProcessor *config.RequestProcessor, ArgDispatcher: cgrArgs.ArgDispatcher, Paginator: *cgrArgs.SupplierPaginator, } - needMaxUsage := utils.IsSliceMember([]string{utils.MetaAuthorize, utils.MetaInitiate, utils.MetaUpdate}, - reqProcessor.Flags.ParamsSlice(utils.MetaRALs)[0]) rply := new(sessions.V1ProcessEventReply) err = ha.connMgr.Call(ha.sessionConns, nil, utils.SessionSv1ProcessEvent, evArgs, rply) + needMaxUsage := needsMaxUsage(reqProcessor.Flags.ParamsSlice(utils.MetaRALs)) if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) { cgrEv.Event[utils.Usage] = 0 // avoid further debits } else if needMaxUsage { diff --git a/agents/radagent.go b/agents/radagent.go index 42d4c2810..2675aa25c 100644 --- a/agents/radagent.go +++ b/agents/radagent.go @@ -284,11 +284,10 @@ func (ra *RadiusAgent) processRequest(reqProcessor *config.RequestProcessor, ArgDispatcher: cgrArgs.ArgDispatcher, Paginator: *cgrArgs.SupplierPaginator, } - needMaxUsage := utils.IsSliceMember([]string{utils.MetaAuthorize, utils.MetaInitiate, utils.MetaUpdate}, - reqProcessor.Flags.ParamsSlice(utils.MetaRALs)[0]) rply := new(sessions.V1ProcessEventReply) err = ra.connMgr.Call(ra.cgrCfg.RadiusAgentCfg().SessionSConns, nil, utils.SessionSv1ProcessEvent, evArgs, rply) + needMaxUsage := needsMaxUsage(reqProcessor.Flags.ParamsSlice(utils.MetaRALs)) if utils.ErrHasPrefix(err, utils.RalsErrorPrfx) { cgrEv.Event[utils.Usage] = 0 // avoid further debits } else if needMaxUsage {