diff --git a/beam/nop.go b/beam/nop.go new file mode 100644 index 0000000000..9d3cabb392 --- /dev/null +++ b/beam/nop.go @@ -0,0 +1,30 @@ +package beam + +import ( + "github.com/docker/libchan" + "io" +) + +type NopSender struct{} + +func (s NopSender) Send(msg *Message) (Receiver, error) { + return NopReceiver{}, nil +} + +func (s NopSender) Close() error { + return nil +} + +func (s NopSender) Unwrap() libchan.Sender { + return libchan.NopSender{} +} + +type NopReceiver struct{} + +func (r NopReceiver) Receive(mode int) (*Message, error) { + return nil, io.EOF +} + +func (r NopReceiver) Unwrap() libchan.Receiver { + return libchan.NopReceiver{} +} diff --git a/debug/debug.go b/debug/debug.go index c287fc4bd8..4b57007f00 100644 --- a/debug/debug.go +++ b/debug/debug.go @@ -77,7 +77,7 @@ func (dbg *debug) catchall(msg *beam.Message) (err error) { Args: msg.Args, Att: msg.Att, Ret: &replyHandler{ - out: msg.Ret, + Sender: msg.Ret, }, } @@ -93,16 +93,16 @@ func (dbg *debug) catchall(msg *beam.Message) (err error) { // We use a replyHandler to provide context for relaying the return channel // of the origin message. type replyHandler struct { - out beam.Sender + beam.Sender } // Send a message using the out channel func (rh *replyHandler) Send(msg *beam.Message) (receiver beam.Receiver, err error) { log.Printf("[debug] <--- Downstream Message { Verb: %s, Args: %v }\n", msg.Verb, msg.Args) - return nil, forward(rh.out, msg) + return nil, forward(rh.Sender, msg) } func (rh *replyHandler) Close() (err error) { // Since we don't allow the downstream handler to close the return channel, we do so here. - return rh.out.Close() + return rh.Sender.Close() }