提交 f45d575a 作者: Jeromy 提交者: Juan Batiz-Benet

address comments from PR

上级 f1ee2377
...@@ -31,6 +31,8 @@ import ( ...@@ -31,6 +31,8 @@ import (
ctxc "github.com/jbenet/go-ipfs/util/ctxcloser" ctxc "github.com/jbenet/go-ipfs/util/ctxcloser"
) )
const IpnsValidatorTag = "ipns"
var log = u.Logger("core") var log = u.Logger("core")
// IpfsNode is IPFS Core module. It represents an IPFS instance. // IpfsNode is IPFS Core module. It represents an IPFS instance.
...@@ -156,7 +158,7 @@ func NewIpfsNode(cfg *config.Config, online bool) (n *IpfsNode, err error) { ...@@ -156,7 +158,7 @@ func NewIpfsNode(cfg *config.Config, online bool) (n *IpfsNode, err error) {
// setup routing service // setup routing service
dhtRouting := dht.NewDHT(ctx, n.Identity, n.Peerstore, n.Network, dhtService, n.Datastore) dhtRouting := dht.NewDHT(ctx, n.Identity, n.Peerstore, n.Network, dhtService, n.Datastore)
dhtRouting.Validators["ipns"] = namesys.ValidateIpnsRecord dhtRouting.Validators[IpnsValidatorTag] = namesys.ValidateIpnsRecord
// TODO(brian): perform this inside NewDHT factory method // TODO(brian): perform this inside NewDHT factory method
dhtService.SetHandler(dhtRouting) // wire the handler to the service. dhtService.SetHandler(dhtRouting) // wire the handler to the service.
......
...@@ -90,7 +90,7 @@ func createRoutingEntryData(pk ci.PrivKey, val string) ([]byte, error) { ...@@ -90,7 +90,7 @@ func createRoutingEntryData(pk ci.PrivKey, val string) ([]byte, error) {
entry.Value = []byte(val) entry.Value = []byte(val)
typ := pb.IpnsEntry_EOL typ := pb.IpnsEntry_EOL
entry.ValidityType = &typ entry.ValidityType = &typ
entry.Validity = []byte(time.Now().Add(time.Hour * 24).String()) entry.Validity = []byte(u.FormatRFC3339(time.Now().Add(time.Hour * 24)))
sig, err := pk.Sign(ipnsEntryDataForSig(entry)) sig, err := pk.Sign(ipnsEntryDataForSig(entry))
if err != nil { if err != nil {
...@@ -119,8 +119,7 @@ func ValidateIpnsRecord(k u.Key, val []byte) error { ...@@ -119,8 +119,7 @@ func ValidateIpnsRecord(k u.Key, val []byte) error {
} }
switch entry.GetValidityType() { switch entry.GetValidityType() {
case pb.IpnsEntry_EOL: case pb.IpnsEntry_EOL:
defaultTimeFormat := "2006-01-02 15:04:05.999999999 -0700 MST" t, err := u.ParseRFC3339(string(entry.GetValue()))
t, err := time.Parse(defaultTimeFormat, string(entry.GetValue()))
if err != nil { if err != nil {
log.Error("Failed parsing time for ipns record EOL") log.Error("Failed parsing time for ipns record EOL")
return err return err
......
...@@ -273,6 +273,7 @@ func (dht *IpfsDHT) getValueOrPeers(ctx context.Context, p peer.Peer, ...@@ -273,6 +273,7 @@ func (dht *IpfsDHT) getValueOrPeers(ctx context.Context, p peer.Peer,
// make sure record is still valid // make sure record is still valid
err = dht.verifyRecord(record) err = dht.verifyRecord(record)
if err != nil { if err != nil {
log.Error("Received invalid record!")
return nil, nil, err return nil, nil, err
} }
return record.GetValue(), nil, nil return record.GetValue(), nil, nil
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论