MCPcopy Create free account
hub / github.com/ethstorage/es-node / MakeStreamHandler

Function MakeStreamHandler

ethstorage/p2p/protocol/syncclient.go:71–82  ·  view source on GitHub ↗
(resourcesCtx context.Context, lg log.Logger, fn requestHandlerFn)

Source from the content-addressed store, hash-verified

69type requestHandlerFn func(ctx context.Context, stream network.Stream)
70
71func MakeStreamHandler(resourcesCtx context.Context, lg log.Logger, fn requestHandlerFn) network.StreamHandler {
72 return func(stream network.Stream) {
73 handleLog := lg.New("peer", stream.Conn().ID(), "remote", stream.Conn().RemoteMultiaddr())
74 defer func() {
75 if err := recover(); err != nil {
76 handleLog.Error("P2p server request handling panic", "err", err, "protocol", stream.Protocol())
77 }
78 }()
79 defer stream.Close()
80 fn(resourcesCtx, stream)
81 }
82}
83
84type newStreamFn func(ctx context.Context, peerId peer.ID, protocolId ...protocol.ID) (network.Stream, error)
85

Callers 2

initMethod · 0.92
createRemoteHostFunction · 0.85

Calls 3

IDMethod · 0.65
CloseMethod · 0.65
ErrorMethod · 0.45

Tested by 1

createRemoteHostFunction · 0.68