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,13 +282,16 @@ 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 {
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 {
profile.Listen()
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 {
profile.Listen()
}
profile.StartConnections(doPeers, doServers)
}
profile.StartConnections(doPeers, doServers)
}
}