diff --git a/agents/diamagent.go b/agents/diamagent.go index 600ac2cb9..acf05d498 100644 --- a/agents/diamagent.go +++ b/agents/diamagent.go @@ -86,16 +86,24 @@ func (da *DiameterAgent) handlers() diam.Handler { ProductName: datatype.UTF8String(da.cgrCfg.DiameterAgentCfg().ProductName), FirmwareRevision: datatype.Unsigned32(utils.DIAMETER_FIRMWARE_REVISION), } - interfaces, _ := net.Interfaces() + interfaces, err := net.Interfaces() + if err != nil { + utils.Logger.Err(fmt.Sprintf("<%s> scan for interfaces err: %s", + utils.DiameterAgent, err.Error())) + } for _, inter := range interfaces { - fmt.Println(inter.Name, inter.HardwareAddr) - if addrs, err := inter.Addrs(); err == nil { - for _, iAddr := range addrs { - settings.HostIPAddresses = append(settings.HostIPAddresses, datatype.Address( - strings.Split(iAddr.String(), utils.HDR_VAL_SEP)[0])) // address came in form x.y.z.t/24 - } + addrs, err := inter.Addrs() + if err != nil { + utils.Logger.Err(fmt.Sprintf("<%s> error: %+v, when taking address from interface: %+v", + utils.DiameterAgent, err, inter.Name)) + continue + } + for _, iAddr := range addrs { + settings.HostIPAddresses = append(settings.HostIPAddresses, datatype.Address( + strings.Split(iAddr.String(), utils.HDR_VAL_SEP)[0])) // address came in form x.y.z.t/24 } } + dSM := sm.New(settings) dSM.HandleFunc("ALL", da.handleMessage) // route all commands to one dispatcher diff --git a/agents/diamclient.go b/agents/diamclient.go index 54f8bbd13..aa83caf28 100644 --- a/agents/diamclient.go +++ b/agents/diamclient.go @@ -40,13 +40,20 @@ func NewDiameterClient(addr, originHost, originRealm string, vendorId int, produ ProductName: datatype.UTF8String(productName), FirmwareRevision: datatype.Unsigned32(firmwareRev), } - interfaces, _ := net.Interfaces() + interfaces, err := net.Interfaces() + if err != nil { + return nil, err + } for _, inter := range interfaces { - if addrs, err := inter.Addrs(); err == nil { - for _, iAddr := range addrs { - cfg.HostIPAddresses = append(cfg.HostIPAddresses, datatype.Address( - strings.Split(iAddr.String(), utils.HDR_VAL_SEP)[0])) // address came in form x.y.z.t/24 - } + addrs, err := inter.Addrs() + if err != nil { + utils.Logger.Err(fmt.Sprintf(" error: %+v, when taking address from interface: %+v", + err, inter.Name)) + continue + } + for _, iAddr := range addrs { + cfg.HostIPAddresses = append(cfg.HostIPAddresses, datatype.Address( + strings.Split(iAddr.String(), utils.HDR_VAL_SEP)[0])) // address came in form x.y.z.t/24 } } dSM := sm.New(cfg)