@cryptotaxi247 / kubo / commits / bbcddd6c1

muxer: log precisely which muxer (useful in tests)

Juan Batiz-Benet committed Dec 27, 2014 at 22:55 UTC bbcddd6c1f02cd3d542e04f9b2e769e7e9746930
1 file changed +9 -3
net/mux.go
+9 -3
@@ -1,7 +1,6 @@
1 package net
2
3 import (
4 - "errors"
4 "fmt"
5 "io"
6 "sync"
@@ -66,17 +65,24 @@ func (m *Mux) ReadProtocolHeader(s io.Reader) (string, StreamHandler, error) {
65 case !found && m.Default != nil:
66 return name, m.Default, nil
67 case !found && m.Default == nil:
69 - return name, nil, errors.New("no handler with name: " + name)
68 + return name, nil, fmt.Errorf("%s no handler with name: %s (%d)", m, name, len(name))
69 default:
70 return name, h, nil
71 }
72 }
73
74 +// String returns the muxer's printing representation
75 +func (m *Mux) String() string {
76 + m.RLock()
77 + defer m.RUnlock()
78 + return fmt.Sprintf("<Muxer %p %d>", m, len(m.Handlers))
79 +}
80 +
81 // SetHandler sets the protocol handler on the Network's Muxer.
82 // This operation is threadsafe.
83 func (m *Mux) SetHandler(p ProtocolID, h StreamHandler) {
84 + log.Debugf("%s setting handler for protocol: %s (%d)", m, p, len(p))
85 m.Lock()
79 - log.Debug("setting protocol ", p)
86 m.Handlers[p] = h
87 m.Unlock()
88 }