From cd4e23bc2e81d8d5dcd103fc08cbb7b3d0c083c4 Mon Sep 17 00:00:00 2001 From: Jeromy <jeromyj@gmail.com> Date: Tue, 11 Nov 2014 19:43:53 -0800 Subject: [PATCH] some comments --- namesys/publisher.go | 4 ++++ routing/dht/records.go | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/namesys/publisher.go b/namesys/publisher.go index 7123264db..5b2da0c17 100644 --- a/namesys/publisher.go +++ b/namesys/publisher.go @@ -20,6 +20,8 @@ import ( // invalid due to being too old var ErrExpiredRecord = errors.New("expired record") +// ErrUnrecognizedValidity is returned when an IpnsRecord has an +// unknown validity type. var ErrUnrecognizedValidity = errors.New("unrecognized validity type") // ipnsPublisher is capable of publishing and resolving names to the IPFS @@ -107,6 +109,8 @@ func ipnsEntryDataForSig(e *pb.IpnsEntry) []byte { []byte{}) } +// ValidateIpnsRecord implements ValidatorFunc and verifies that the +// given 'val' is an IpnsEntry and that that entry is valid. func ValidateIpnsRecord(k u.Key, val []byte) error { entry := new(pb.IpnsEntry) err := proto.Unmarshal(val, entry) diff --git a/routing/dht/records.go b/routing/dht/records.go index ee1257e24..0a3b4f4e0 100644 --- a/routing/dht/records.go +++ b/routing/dht/records.go @@ -14,9 +14,16 @@ import ( u "github.com/jbenet/go-ipfs/util" ) +// ValidatorFunc is a function that is called to validate a given +// type of DHTRecord. type ValidatorFunc func(u.Key, []byte) error +// ErrBadRecord is returned any time a dht record is found to be +// incorrectly formatted or signed. var ErrBadRecord = errors.New("bad dht record") + +// ErrInvalidRecordType is returned if a DHTRecord keys prefix +// is not found in the Validator map of the DHT. var ErrInvalidRecordType = errors.New("invalid record keytype") // creates and signs a dht record for the given key/value pair @@ -96,6 +103,9 @@ func (dht *IpfsDHT) verifyRecord(r *pb.Record) error { return fnc(u.Key(r.GetKey()), r.GetValue()) } +// ValidatePublicKeyRecord implements ValidatorFunc and +// verifies that the passed in record value is the PublicKey +// that matches the passed in key. func ValidatePublicKeyRecord(k u.Key, val []byte) error { keyparts := bytes.Split([]byte(k), []byte("/")) if len(keyparts) < 3 { -- GitLab