@@ -64,11 +64,12 @@ type pinner struct {
64
64
// not delete them.
65
65
internalPin map [key.Key ]struct {}
66
66
dserv mdag.DAGService
67
+ privdag mdag.DAGService
67
68
dstore ds.Datastore
68
69
}
69
70
70
71
// NewPinner creates a new pinner using the given datastore as a backend
71
- func NewPinner (dstore ds.Datastore , serv mdag.DAGService ) Pinner {
72
+ func NewPinner (dstore ds.Datastore , pub mdag. DAGService , priv mdag.DAGService ) Pinner {
72
73
73
74
// Load set from given datastore...
74
75
rcset := set .NewSimpleBlockSet ()
@@ -78,8 +79,9 @@ func NewPinner(dstore ds.Datastore, serv mdag.DAGService) Pinner {
78
79
return & pinner {
79
80
recursePin : rcset ,
80
81
directPin : dirset ,
81
- dserv : serv ,
82
+ dserv : pub ,
82
83
dstore : dstore ,
84
+ privdag : priv ,
83
85
}
84
86
}
85
87
@@ -208,7 +210,7 @@ func (p *pinner) RemovePinWithMode(key key.Key, mode PinMode) {
208
210
}
209
211
210
212
// LoadPinner loads a pinner and its keysets from the given datastore
211
- func LoadPinner (d ds.Datastore , dserv mdag.DAGService ) (Pinner , error ) {
213
+ func LoadPinner (d ds.Datastore , dserv mdag.DAGService , priv mdag. DAGService ) (Pinner , error ) {
212
214
p := new (pinner )
213
215
214
216
rootKeyI , err := d .Get (pinDatastoreKey )
@@ -225,7 +227,7 @@ func LoadPinner(d ds.Datastore, dserv mdag.DAGService) (Pinner, error) {
225
227
ctx , cancel := context .WithTimeout (context .TODO (), time .Second * 5 )
226
228
defer cancel ()
227
229
228
- root , err := dserv .Get (ctx , rootKey )
230
+ root , err := priv .Get (ctx , rootKey )
229
231
if err != nil {
230
232
return nil , fmt .Errorf ("cannot find pinning root object: %v" , err )
231
233
}
@@ -238,15 +240,15 @@ func LoadPinner(d ds.Datastore, dserv mdag.DAGService) (Pinner, error) {
238
240
}
239
241
240
242
{ // load recursive set
241
- recurseKeys , err := loadSet (ctx , dserv , root , linkRecursive , recordInternal )
243
+ recurseKeys , err := loadSet (ctx , priv , root , linkRecursive , recordInternal )
242
244
if err != nil {
243
245
return nil , fmt .Errorf ("cannot load recursive pins: %v" , err )
244
246
}
245
247
p .recursePin = set .SimpleSetFromKeys (recurseKeys )
246
248
}
247
249
248
250
{ // load direct set
249
- directKeys , err := loadSet (ctx , dserv , root , linkDirect , recordInternal )
251
+ directKeys , err := loadSet (ctx , priv , root , linkDirect , recordInternal )
250
252
if err != nil {
251
253
return nil , fmt .Errorf ("cannot load direct pins: %v" , err )
252
254
}
@@ -257,6 +259,7 @@ func LoadPinner(d ds.Datastore, dserv mdag.DAGService) (Pinner, error) {
257
259
258
260
// assign services
259
261
p .dserv = dserv
262
+ p .privdag = priv
260
263
p .dstore = d
261
264
262
265
return p , nil
@@ -286,7 +289,7 @@ func (p *pinner) Flush() error {
286
289
287
290
root := & mdag.Node {}
288
291
{
289
- n , err := storeSet (ctx , p .dserv , p .directPin .GetKeys (), recordInternal )
292
+ n , err := storeSet (ctx , p .privdag , p .directPin .GetKeys (), recordInternal )
290
293
if err != nil {
291
294
return err
292
295
}
@@ -296,7 +299,7 @@ func (p *pinner) Flush() error {
296
299
}
297
300
298
301
{
299
- n , err := storeSet (ctx , p .dserv , p .recursePin .GetKeys (), recordInternal )
302
+ n , err := storeSet (ctx , p .privdag , p .recursePin .GetKeys (), recordInternal )
300
303
if err != nil {
301
304
return err
302
305
}
@@ -306,12 +309,12 @@ func (p *pinner) Flush() error {
306
309
}
307
310
308
311
// add the empty node, its referenced by the pin sets but never created
309
- _ , err := p .dserv .Add (new (mdag.Node ))
312
+ _ , err := p .privdag .Add (new (mdag.Node ))
310
313
if err != nil {
311
314
return err
312
315
}
313
316
314
- k , err := p .dserv .Add (root )
317
+ k , err := p .privdag .Add (root )
315
318
if err != nil {
316
319
return err
317
320
}
0 commit comments