fix: too many open files caused by agent not being closed (#154)

* fix: too many open files caused by agent not being closed after unsuccessful attempts to start a peer connection (happens when no network available)

* fix: minor refactor to consider signal status
This commit is contained in:
Mikhail Bragin
2021-11-14 19:41:17 +01:00
committed by GitHub
parent 95ef8547f3
commit d08e5efbce
4 changed files with 29 additions and 14 deletions

View File

@ -148,6 +148,11 @@ func (e *Engine) initializePeer(peer Peer) {
}, e.ctx)
operation := func() error {
if e.signal.GetStatus() != signal.StreamConnected {
return fmt.Errorf("not opening connection to peer because Signal is unavailable")
}
_, err := e.openPeerConnection(e.wgPort, e.config.WgPrivateKey, peer)
e.peerMux.Lock()
defer e.peerMux.Unlock()
@ -157,7 +162,7 @@ func (e *Engine) initializePeer(peer Peer) {
}
if err != nil {
log.Infof("retrying connection because of error: %s", err.Error())
log.Debugf("retrying connection because of error: %s", err.Error())
return err
}
return nil