protocol#send now has a callback parameter

When the sending fails, the callback is called with an error message.