Following on #194, some L2 communications modules take callback functions and wrap them in another callback before registering them with the transport. These should always be wrapped in a connection that is either a) stored in the L2 module instance (when the callback is provided at construction time) or b) returned to the caller (such as in the RpcClient case where new callbacks are provided every time).
Following on #194, some L2 communications modules take callback functions and wrap them in another callback before registering them with the transport. These should always be wrapped in a connection that is either a) stored in the L2 module instance (when the callback is provided at construction time) or b) returned to the caller (such as in the RpcClient case where new callbacks are provided every time).