@cryptotaxi247 / kubo / commits / 7c7ec1410

p2p/net/conn: log conn lifetime event

Juan Batiz-Benet committed Jan 30, 2015 at 21:59 UTC 7c7ec14109317d47e207987a355aa22c5741df23
1 file changed +12 -2
p2p/net/conn/conn.go
+12 -2
@@ -2,6 +2,7 @@ package conn
2
3 import (
4 "fmt"
5 + "io"
6 "net"
7 "time"
8
@@ -15,7 +16,7 @@ import (
16 peer "github.com/jbenet/go-ipfs/p2p/peer"
17 eventlog "github.com/jbenet/go-ipfs/thirdparty/eventlog"
18 u "github.com/jbenet/go-ipfs/util"
18 - debugerr "github.com/jbenet/go-ipfs/util/debugerror"
19 + lgbl "github.com/jbenet/go-ipfs/util/eventlog/loggables"
20 )
21
22 var log = eventlog.Logger("conn")
@@ -33,16 +34,19 @@ type singleConn struct {
34 remote peer.ID
35 maconn manet.Conn
36 msgrw msgio.ReadWriteCloser
37 + event io.Closer
38 }
39
40 // newConn constructs a new connection
41 func newSingleConn(ctx context.Context, local, remote peer.ID, maconn manet.Conn) (Conn, error) {
42 + ml := lgbl.Dial("conn", local, remote, maconn.LocalMultiaddr(), maconn.RemoteMultiaddr())
43
44 conn := &singleConn{
45 local: local,
46 remote: remote,
47 maconn: maconn,
48 msgrw: msgio.NewReadWriter(maconn),
49 + event: log.EventBegin(ctx, "connLifetime", ml),
50 }
51
52 log.Debugf("newSingleConn %p: %v to %v", conn, local, remote)
@@ -51,7 +55,13 @@ func newSingleConn(ctx context.Context, local, remote peer.ID, maconn manet.Conn
55
56 // close is the internal close function, called by ContextCloser.Close
57 func (c *singleConn) Close() error {
54 - log.Debug(debugerr.Errorf("%s closing Conn with %s", c.local, c.remote))
58 + defer func() {
59 + if c.event != nil {
60 + c.event.Close()
61 + c.event = nil
62 + }
63 + }()
64 +
65 // close underlying connection
66 return c.msgrw.Close()
67 }