Threat error in case that it cannot take interface/interface address

This commit is contained in:
TeoV
2018-12-17 05:44:49 -05:00
committed by Dan Christian Bogos
parent 540bf1d108
commit 6b1cb98d29
2 changed files with 28 additions and 13 deletions

View File

@@ -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

View File

@@ -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("<DiameterClient> 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)