mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-09 15:26:04 +00:00
ZMQII-10: Make connections interrupted during the init phase be closed silently
This commit is contained in:
parent
37cacc5700
commit
2bc9419ced
@ -20,6 +20,7 @@
|
||||
#include "zmq_decoder.hpp"
|
||||
#include "i_inout.hpp"
|
||||
#include "wire.hpp"
|
||||
#include "err.hpp"
|
||||
|
||||
zmq::zmq_decoder_t::zmq_decoder_t () :
|
||||
destination (NULL)
|
||||
@ -48,7 +49,11 @@ bool zmq::zmq_decoder_t::one_byte_size_ready ()
|
||||
if (*tmpbuf == 0xff)
|
||||
next_step (tmpbuf, 8, &zmq_decoder_t::eight_byte_size_ready);
|
||||
else {
|
||||
zmq_msg_init_size (&in_progress, *tmpbuf);
|
||||
|
||||
// TODO: Handle over-sized message decently.
|
||||
int rc = zmq_msg_init_size (&in_progress, *tmpbuf);
|
||||
errno_assert (rc == 0);
|
||||
|
||||
next_step (zmq_msg_data (&in_progress), *tmpbuf,
|
||||
&zmq_decoder_t::message_ready);
|
||||
}
|
||||
@ -60,7 +65,11 @@ bool zmq::zmq_decoder_t::eight_byte_size_ready ()
|
||||
// 8-byte size is read. Allocate the buffer for message body and
|
||||
// read the message data into it.
|
||||
size_t size = (size_t) get_uint64 (tmpbuf);
|
||||
zmq_msg_init_size (&in_progress, size);
|
||||
|
||||
// TODO: Handle over-sized message decently.
|
||||
int rc = zmq_msg_init_size (&in_progress, size);
|
||||
errno_assert (rc == 0);
|
||||
|
||||
next_step (zmq_msg_data (&in_progress), size,
|
||||
&zmq_decoder_t::message_ready);
|
||||
return true;
|
||||
|
@ -93,8 +93,11 @@ void zmq::zmq_listener_init_t::flush ()
|
||||
|
||||
void zmq::zmq_listener_init_t::detach ()
|
||||
{
|
||||
// TODO: Engine is closing down. Init object is to be closed as well.
|
||||
zmq_assert (false);
|
||||
// This function is called by engine when disconnection occurs.
|
||||
// The engine will destroy itself, so we just drop the pointer here and
|
||||
// start termination of the init object.
|
||||
engine = NULL;
|
||||
term ();
|
||||
}
|
||||
|
||||
void zmq::zmq_listener_init_t::process_plug ()
|
||||
|
Loading…
x
Reference in New Issue
Block a user