refactor(gcr/s) re-use code from get
Brian Tiger Chow committed
Feb 2, 2015 at 02:24 UTC
e2a3c4d19ac917600ebd1f98e3d50ce081ac15de
1 file changed
+4
-9
routing/grandcentral/server.go
+4
-9
@@ -134,16 +134,11 @@ func putRoutingRecord(ds datastore.Datastore, k util.Key, value *dhtpb.Record) e
134
func putRoutingProviders(ds datastore.Datastore, k util.Key, providers []*dhtpb.Message_Peer) error {
135
log.Event(context.Background(), "putRoutingProviders", &k)
136
pkey := datastore.KeyWithNamespaces([]string{"routing", "providers", k.String()})
137
- if v, err := ds.Get(pkey); err == nil {
138
- if msg, ok := v.([]byte); ok {
139
- var protomsg dhtpb.Message
140
- if err := proto.Unmarshal(msg, &protomsg); err != nil {
141
- log.Error("failed to unmarshal routing provider record. programmer error")
142
- } else {
143
- providers = append(providers, protomsg.ProviderPeers...)
144
- }
145
- }
137
+ old, err := getRoutingProviders(ds, k)
138
+ if err != nil {
139
+ return err
140
}
141
+ providers = append(providers, old...)
142
var protomsg dhtpb.Message
143
protomsg.ProviderPeers = providers
144
data, err := proto.Marshal(&protomsg)