Issue a PeerAuth event when attempting to peer to an existing authed connection

This commit is contained in:
Sarah Jamie Lewis 2019-08-07 11:12:15 -07:00
vanhempi 5aaa228691
commit 4a08331675
1 muutettua tiedostoa jossa 14 lisäystä ja 0 poistoa

Näytä tiedosto

@ -4,6 +4,7 @@ import (
"cwtch.im/cwtch/event"
"cwtch.im/cwtch/protocol"
"cwtch.im/tapir"
"cwtch.im/tapir/applications"
"cwtch.im/tapir/networks/tor"
"errors"
"git.openprivacy.ca/openprivacy/libricochet-go/connectivity"
@ -175,6 +176,19 @@ func (e *engine) peerWithOnion(onion string) {
if !blocked {
e.ignoreOnShutdown(e.peerConnecting)(onion)
connected, err := e.service.Connect(onion, e.createPeerTemplate())
// If we are already connected...check if we are authed and issue an auth event
// (This allows the ui to be stateless)
if connected && err != nil {
conn, err := e.service.GetConnection(onion)
if err == nil {
if conn.HasCapability(applications.AuthCapability) {
e.ignoreOnShutdown(e.peerAuthed)(onion)
return
}
}
}
// Only issue a disconnected error if we are disconnected (Connect will fail if a connection already exists)
if !connected && err != nil {
e.ignoreOnShutdown(e.peerDisconnected)(onion)