diff options
author | obscuren <geffobscura@gmail.com> | 2014-08-13 16:52:50 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-08-13 16:52:50 +0800 |
commit | fa881220aedb638f9ee35337b2ca1817c2a8482f (patch) | |
tree | 302f533cdefa3f59ac0ae9f5030d5af91bd76c4d | |
parent | a760ce05b948e89bc564af20599dcf95698ac0eb (diff) | |
download | dexon-fa881220aedb638f9ee35337b2ca1817c2a8482f.tar.gz dexon-fa881220aedb638f9ee35337b2ca1817c2a8482f.tar.zst dexon-fa881220aedb638f9ee35337b2ca1817c2a8482f.zip |
Updated lookup method to include CNAME's as well as A records
-rw-r--r-- | ethchain/bloom.go | 2 | ||||
-rw-r--r-- | ethpub/pub.go | 17 |
2 files changed, 17 insertions, 2 deletions
diff --git a/ethchain/bloom.go b/ethchain/bloom.go index 320ce73fc..5317ca0b1 100644 --- a/ethchain/bloom.go +++ b/ethchain/bloom.go @@ -6,7 +6,7 @@ type BloomFilter struct { func NewBloomFilter(bin []byte) *BloomFilter { if bin == nil { - bin = make([]byte, 255) + bin = make([]byte, 256) } return &BloomFilter{ diff --git a/ethpub/pub.go b/ethpub/pub.go index ab2aae599..762c9a60f 100644 --- a/ethpub/pub.go +++ b/ethpub/pub.go @@ -4,6 +4,7 @@ import ( "bytes" "encoding/json" "math/big" + "strconv" "strings" "sync/atomic" @@ -74,8 +75,22 @@ func (self *PEthereum) LookupDomain(domain string) string { if len(domain) > 32 { domain = string(ethcrypto.Sha3Bin([]byte(domain))) } + data := world.Config().Get("DnsReg").StorageString(domain).Bytes() + + // Left padded = A record, Right padded = CNAME + if data[0] == 0 { + data = bytes.TrimLeft(data, "\x00") + var ipSlice []string + for _, d := range data { + ipSlice = append(ipSlice, strconv.Itoa(int(d))) + } + + return strings.Join(ipSlice, ".") + } else { + data = bytes.TrimRight(data, "\x00") - return strings.Trim(world.Config().Get("DnsReg").StorageString(domain).Str(), "\x00") + return string(data) + } } func (lib *PEthereum) GetBlock(hexHash string) *PBlock { |