p2p: addrBook.Save() on DialPeersAsync

This commit is contained in:
Ethan Buchman
2018-01-23 22:25:39 -05:00
parent 85816877c6
commit 8f3bd3f209
2 changed files with 13 additions and 0 deletions

View File

@@ -27,6 +27,7 @@ const (
// AddrBook is an address book used for tracking peers
// so we can gossip about them to others and select
// peers to dial.
// TODO: break this up?
type AddrBook interface {
cmn.Service
@@ -53,6 +54,9 @@ type AddrBook interface {
// TODO: remove
ListOfKnownAddresses() []*knownAddress
// Persist to disk
Save()
}
var _ AddrBook = (*addrBook)(nil)
@@ -314,6 +318,11 @@ func (a *addrBook) size() int {
//----------------------------------------------------------
// Save persists the address book to disk.
func (a *addrBook) Save() {
a.saveToFile(a.filePath) // thread safe
}
func (a *addrBook) saveRoutine() {
defer a.wg.Done()

View File

@@ -35,6 +35,7 @@ const (
type AddrBook interface {
AddAddress(addr *NetAddress, src *NetAddress) error
Save()
}
//-----------------------------------------------------------------------------
@@ -337,6 +338,9 @@ func (sw *Switch) DialPeersAsync(addrBook AddrBook, peers []string, persistent b
// TODO: move this out of here ?
addrBook.AddAddress(netAddr, ourAddr)
}
// Persist some peers to disk right away.
// NOTE: integration tests depend on this
addrBook.Save()
}
// permute the list, dial them in random order.