make ActivatePeerEngine safe to recall

This commit is contained in:
Dan Ballard 2022-12-04 20:08:41 -08:00 committed by Gitea
parent 06d402c4d7
commit bdb4b93f59
1 changed files with 9 additions and 6 deletions

View File

@ -282,7 +282,9 @@ func (app *application) ActivateEngines(doListen, doPeers, doServers bool) {
func (app *application) ActivatePeerEngine(onion string, doListen, doPeers, doServers bool) {
profile := app.GetPeer(onion)
if profile != nil {
if _, exists := app.engines[onion]; !exists {
app.engines[profile.GetOnion()], _ = profile.GenerateProtocolEngine(app.acn, app.eventBuses[profile.GetOnion()])
app.eventBuses[profile.GetOnion()].Publish(event.NewEventList(event.ProtocolEngineCreated))
app.QueryACNStatus()
if doListen {
@ -291,6 +293,7 @@ func (app *application) ActivatePeerEngine(onion string, doListen, doPeers, doSe
profile.StartConnections(doPeers, doServers)
}
}
}
// DeactivatePeerEngine shutsdown and cleans up a peer engine, should be called when an underlying ACN goes offline
func (app *application) DeactivatePeerEngine(onion string) {