mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Threat error in case that it cannot take interface/interface address
This commit is contained in:
committed by
Dan Christian Bogos
parent
540bf1d108
commit
6b1cb98d29
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user