7 ma "github.com/multiformats/go-multiaddr"
10 var Dns4Protocol = ma.Protocol{
12 Size: ma.LengthPrefixedVarSize,
14 VCode: ma.CodeToVarint(54),
15 Transcoder: DnsTranscoder,
17 var Dns6Protocol = ma.Protocol{
19 Size: ma.LengthPrefixedVarSize,
21 VCode: ma.CodeToVarint(55),
22 Transcoder: DnsTranscoder,
24 var DnsaddrProtocol = ma.Protocol{
26 Size: ma.LengthPrefixedVarSize,
28 VCode: ma.CodeToVarint(56),
29 Transcoder: DnsTranscoder,
33 err := ma.AddProtocol(Dns4Protocol)
35 panic(fmt.Errorf("error registering dns4 protocol: %s", err))
37 err = ma.AddProtocol(Dns6Protocol)
39 panic(fmt.Errorf("error registering dns6 protocol: %s", err))
41 err = ma.AddProtocol(DnsaddrProtocol)
43 panic(fmt.Errorf("error registering dnsaddr protocol: %s", err))
47 var DnsTranscoder = ma.NewTranscoderFromFunctions(dnsStB, dnsBtS, dnsVal)
49 func dnsVal(b []byte) error {
50 if bytes.IndexByte(b, '/') >= 0 {
51 return fmt.Errorf("domain name %q contains a slash", string(b))
56 func dnsStB(s string) ([]byte, error) {
60 func dnsBtS(b []byte) (string, error) {