diff --git a/agents/diam_it_test.go b/agents/diam_it_test.go index 9db362f09..a3983dfc9 100644 --- a/agents/diam_it_test.go +++ b/agents/diam_it_test.go @@ -63,7 +63,7 @@ var sTestsDiam = []func(t *testing.T){ testDiamItKillEngine, } -//Test start here +// Test start here func TestDiamItTcp(t *testing.T) { diamConfigDIR = "diamagent" for _, stest := range sTestsDiam { @@ -131,9 +131,6 @@ func testDiamItStartEngine(t *testing.T) { } func testDiamItConnectDiameterClient(t *testing.T) { - if diamConfigDIR == "diamsctpagent" || diamConfigDIR == "diamagentmaxconn" { - daCfg.DiameterAgentCfg().DictionariesPath = "" - } diamClnt, err = NewDiameterClient(daCfg.DiameterAgentCfg().Listen, "INTEGRATION_TESTS", daCfg.DiameterAgentCfg().OriginRealm, daCfg.DiameterAgentCfg().VendorId, daCfg.DiameterAgentCfg().ProductName, utils.DIAMETER_FIRMWARE_REVISION, diff --git a/agents/diamclient.go b/agents/diamclient.go index aa83caf28..e3383c3b4 100644 --- a/agents/diamclient.go +++ b/agents/diamclient.go @@ -22,6 +22,7 @@ import ( "fmt" "net" "strings" + "sync" "time" "github.com/cgrates/cgrates/utils" @@ -31,6 +32,8 @@ import ( "github.com/fiorix/go-diameter/diam/sm" ) +var dictOnce sync.Once + func NewDiameterClient(addr, originHost, originRealm string, vendorId int, productName string, firmwareRev int, dictsDir string, network string) (*DiameterClient, error) { cfg := &sm.Settings{ @@ -74,7 +77,10 @@ func NewDiameterClient(addr, originHost, originRealm string, vendorId int, produ }, } if len(dictsDir) != 0 { - if err := loadDictionaries(dictsDir, "DiameterClient"); err != nil { + var err error + err = nil + dictOnce.Do(func() { err = loadDictionaries(dictsDir, "DiameterClient") }) + if err != nil { return nil, err } }