api: put errResolve to getEntry

This commit is contained in:
zelig 2015-05-31 15:42:04 +01:00
parent b2942dbc7c
commit 4d825c4a74

View file

@ -260,15 +260,16 @@ func (self *Api) Register(sender common.Address, hash common.Hash, domain string
return return
} }
func (self *Api) Resolve(hostport string) (contentHash Key, err error) { type errResolve error
var host, port string
var err error func (self *Api) Resolve(hostPort string) (contentHash Key, err error) {
host, port, err = net.SplitHostPort(hostport) var host string
host, _, err = net.SplitHostPort(hostPort)
if err != nil { if err != nil {
if err.Error() == "missing port in address "+hostport { if err.Error() == "missing port in address "+hostPort {
host = hostport host = hostPort
} else { } else {
err = fmt.Errorf("invalid host '%s': %v", hostport, err) err = fmt.Errorf("invalid host '%s': %v", hostPort, err)
return return
} }
} }
@ -277,18 +278,16 @@ func (self *Api) Resolve(hostport string) (contentHash Key, err error) {
dpaLogger.Debugf("Swarm: host is a contentHash: '%064x'", contentHash) dpaLogger.Debugf("Swarm: host is a contentHash: '%064x'", contentHash)
} else { } else {
if self.Resolver != nil { if self.Resolver != nil {
hostHash := common.BytesToHash(crypto.Sha3(common.Hex2Bytes(host))) hostHash := common.BytesToHash(crypto.Sha3([]byte(host)))
// TODO: should take port as block number versioning
_ = port
var hash common.Hash var hash common.Hash
hash, err = self.Resolver.KeyToContentHash(hostHash) hash, err = self.Resolver.KeyToContentHash(hostHash)
if err != nil { if err != nil {
err = fmt.Errorf("unable to resolve '%s': %v", hostport, err) err = fmt.Errorf("unable to resolve '%s': %v", hostPort, err)
} }
contentHash = Key(hash.Bytes()) contentHash = Key(hash.Bytes())
dpaLogger.Debugf("Swarm: resolve host to contentHash: '%064x'", contentHash) dpaLogger.Debugf("Swarm: resolve host '%s' to contentHash: '%064x'", hostPort, contentHash)
} else { } else {
err = fmt.Errorf("no resolver '%s': %v", hostport, err) err = fmt.Errorf("no resolver '%s': %v", hostPort, err)
} }
} }
return return
@ -307,7 +306,8 @@ func (self *Api) getPath(uri string) (reader SectionReader, mimeType string, sta
var key Key var key Key
key, err = self.Resolve(hostPort) key, err = self.Resolve(hostPort)
if err != nil { if err != nil {
dpaLogger.Debugf("Swarm: rResolve error: %v", err) err = errResolve(err)
dpaLogger.Debugf("Swarm: error : %v", err)
return return
} }