From 242bf47bc4a7c39eac95cf97abeccf76e92d25ec Mon Sep 17 00:00:00 2001 From: DanB Date: Fri, 4 Mar 2016 18:33:01 +0100 Subject: [PATCH] Diameter datatype serialization fix --- agents/dmtagent.go | 2 +- agents/libdmt.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/agents/dmtagent.go b/agents/dmtagent.go index 9aa43a31f..8d1751759 100644 --- a/agents/dmtagent.go +++ b/agents/dmtagent.go @@ -122,7 +122,7 @@ func (self DiameterAgent) processCCR(ccr *CCR, reqProcessor *config.DARequestPro err = self.smg.Call("SMGenericV1.SessionStart", smgEv, &maxUsage) case 2: err = self.smg.Call("SMGenericV1.SessionUpdate", smgEv, &maxUsage) - case 3, 4: + case 3, 4: // Handle them together since we generate CDR for them var rpl string if ccr.CCRequestType == 3 { err = self.smg.Call("SMGenericV1.SessionEnd", smgEv, &rpl) diff --git a/agents/libdmt.go b/agents/libdmt.go index fd53bff95..53c6bc084 100644 --- a/agents/libdmt.go +++ b/agents/libdmt.go @@ -326,13 +326,13 @@ func serializeAVPValueFromString(dictAVP *dict.AVP, valStr, timezone string) ([] return []byte(valStr), nil case datatype.AddressType: return []byte(net.ParseIP(valStr)), nil - case datatype.EnumeratedType, datatype.Integer32Type, datatype.Integer64Type, datatype.Unsigned32Type: + case datatype.EnumeratedType, datatype.Integer32Type, datatype.Unsigned32Type: i, err := strconv.Atoi(valStr) if err != nil { return nil, err } return datatype.Enumerated(i).Serialize(), nil - case datatype.Unsigned64Type: + case datatype.Unsigned64Type, datatype.Integer64Type: i, err := strconv.ParseInt(valStr, 10, 64) if err != nil { return nil, err