diff --git a/network-go/implementation.md b/network-go/implementation.md index 6e2bb62..ba4988e 100644 --- a/network-go/implementation.md +++ b/network-go/implementation.md @@ -230,4 +230,4 @@ docker run -d \ -e WATCH_PERIOD_SECONDS=30 \ -e DEBUG=false \ --name network-go \ - network-go \ No newline at end of file + safebox/network-go \ No newline at end of file diff --git a/network-go/resolver/resolver.go b/network-go/resolver/resolver.go index c5a867a..09a6f31 100644 --- a/network-go/resolver/resolver.go +++ b/network-go/resolver/resolver.go @@ -47,11 +47,13 @@ func (r *Resolver) Resolve(name string) []string { } } - // If no exact match, try prefix matching (extract prefix before first dash) + // If no exact match, try stripping dashes from the lookup name if len(ips) == 0 && strings.Contains(name, "-") { - prefix := name[:strings.Index(name, "-")] + strippedName := strings.ReplaceAll(name, "-", "") for _, ipCfg := range r.cfg.IPs { - if strings.HasPrefix(ipCfg.ContainerName, prefix) || strings.HasPrefix(ipCfg.Selector, prefix) { + strippedContainer := strings.ReplaceAll(ipCfg.ContainerName, "-", "") + strippedSelector := strings.ReplaceAll(ipCfg.Selector, "-", "") + if strippedContainer == strippedName || strippedSelector == strippedName { ips = append(ips, ipCfg.IP) } }