Update populating host ip addresses for diam agent

This commit is contained in:
TeoV
2018-12-17 07:43:13 -05:00
committed by Dan Christian Bogos
parent ffd3dfd9a0
commit df5e9bd8be

View File

@@ -86,24 +86,29 @@ func (da *DiameterAgent) handlers() diam.Handler {
ProductName: datatype.UTF8String(da.cgrCfg.DiameterAgentCfg().ProductName),
FirmwareRevision: datatype.Unsigned32(utils.DIAMETER_FIRMWARE_REVISION),
}
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 {
addrs, err := inter.Addrs()
ipPort := strings.Split(da.cgrCfg.DiameterAgentCfg().Listen, utils.InInFieldSep)
if ipPort[0] == "" {
interfaces, err := net.Interfaces()
if err != nil {
utils.Logger.Err(fmt.Sprintf("<%s> error: %+v, when taking address from interface: %+v",
utils.DiameterAgent, err, inter.Name))
continue
utils.Logger.Err(fmt.Sprintf("<%s> scan for interfaces err: %s",
utils.DiameterAgent, err.Error()))
}
for _, iAddr := range addrs {
if strings.Contains(da.cgrCfg.DiameterAgentCfg().Listen, strings.Split(iAddr.String(), utils.HDR_VAL_SEP)[0]) {
for _, inter := range interfaces {
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
}
}
} else {
for _, ip := range strings.Split(ipPort[0], utils.HDR_VAL_SEP) {
settings.HostIPAddresses = append(settings.HostIPAddresses, datatype.Address(ip))
}
}
dSM := sm.New(settings)