コード例 #1
0
ファイル: server.go プロジェクト: qnib/go-ipfs
func putRoutingRecord(ds datastore.Datastore, k key.Key, value *pb.Record) error {
	data, err := proto.Marshal(value)
	if err != nil {
		return err
	}
	dskey := k.DsKey()
	// TODO namespace
	if err := ds.Put(dskey, data); err != nil {
		return err
	}
	return nil
}
コード例 #2
0
ファイル: server.go プロジェクト: qnib/go-ipfs
func getRoutingRecord(ds datastore.Datastore, k key.Key) (*pb.Record, error) {
	dskey := k.DsKey()
	val, err := ds.Get(dskey)
	if err != nil {
		return nil, err
	}
	recordBytes, ok := val.([]byte)
	if !ok {
		return nil, fmt.Errorf("datastore had non byte-slice value for %v", dskey)
	}
	var record pb.Record
	if err := proto.Unmarshal(recordBytes, &record); err != nil {
		return nil, errors.New("failed to unmarshal dht record from datastore")
	}
	return &record, nil
}