@cryptotaxi247 / kubo / commits / 1a9ff6024

Allow resolution of .eth names via .eth.link

Jim McDonald committed Jun 13, 2019 at 15:08 UTC 1a9ff602464b04cef2a483672138786058d593a2
1 file changed +8
namesys/namesys.go
+8
@@ -80,6 +80,9 @@ func (ns *mpns) ResolveAsync(ctx context.Context, name string, options ...opts.R
80 return resolveAsync(ctx, ns, name, opts.ProcessOpts(options))
81 }
82
83 +const ethTLD = ".eth"
84 +const linkTLD = ".link"
85 +
86 // resolveOnce implements resolver.
87 func (ns *mpns) resolveOnceAsync(ctx context.Context, name string, options opts.ResolveOpts) <-chan onceResult {
88 out := make(chan onceResult, 1)
@@ -87,6 +90,11 @@ func (ns *mpns) resolveOnceAsync(ctx context.Context, name string, options opts.
90 if !strings.HasPrefix(name, ipnsPrefix) {
91 name = ipnsPrefix + name
92 }
93 + if strings.HasSuffix(name, ethTLD) {
94 + // This is an ENS name. As we're resolving via an arbitrary DNS server
95 + // that may not know about .eth we need to add our link domain suffix.
96 + name = name + linkTLD
97 + }
98 segments := strings.SplitN(name, "/", 4)
99 if len(segments) < 3 || segments[0] != "" {
100 log.Debugf("invalid name syntax for %s", name)