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

这个提交包含在:
Sarah Jamie Lewis 2019-08-07 11:12:15 -07:00
父节点 5aaa228691
当前提交 4a08331675
共有 1 个文件被更改,包括 14 次插入0 次删除

查看文件

@ -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)