callbacks.go | 1 + peerconn.go | 3 +++ diff --git a/callbacks.go b/callbacks.go index 0e73d80993e0d207a52a43769358ac1bc7971084..83e248154a9d4c7878dc96c6e38f0ae0f9d8860d 100644 --- a/callbacks.go +++ b/callbacks.go @@ -10,4 +10,5 @@ type Callbacks struct { CompletedHandshake func(_ *PeerConn, infoHash InfoHash) ReadMessage func(*PeerConn, *pp.Message) ReadExtendedHandshake func(*PeerConn, *pp.ExtendedHandshakeMessage) + PeerConnClosed func(*PeerConn) } diff --git a/peerconn.go b/peerconn.go index cc8bdeb8580319332205d3f1ef0d7b369c6c56dc..e13e9fa3735578b389bb2acb75aab9a2954dface 100644 --- a/peerconn.go +++ b/peerconn.go @@ -355,6 +355,9 @@ cn.tickleWriter() if cn.conn != nil { cn.conn.Close() } + if cb := cn.t.cl.config.Callbacks.PeerConnClosed; cb != nil { + cb(cn) + } } func (cn *peer) peerHasPiece(piece pieceIndex) bool {