mirror of
https://gitlab.com/pnx-tools/dns-updater.git
synced 2026-06-16 05:54:56 +02:00
28 lines
503 B
Go
28 lines
503 B
Go
package lookup
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
"time"
|
|
|
|
"dnsupdater/ip"
|
|
)
|
|
|
|
type Service interface {
|
|
Name() string
|
|
|
|
Lookup(ctx context.Context) (net.IP, error)
|
|
}
|
|
|
|
const WAN_IFACE = "wan"
|
|
|
|
func LookupWrapper(service Service) ip.NetInterfaceIPResolver {
|
|
return func(iface_name string) (net.IP, error) {
|
|
if iface_name == WAN_IFACE {
|
|
ctx, cancel := context.WithTimeout(context.Background(), time.Second*10)
|
|
defer cancel()
|
|
return service.Lookup(ctx)
|
|
}
|
|
return ip.GetInterfaceIP(iface_name)
|
|
}
|
|
}
|