int zmq::curve_server_t::next_handshake_command (msg_t *msg_) { int rc = 0; switch (state) { case send_welcome: rc = produce_welcome (msg_); if (rc == 0) state = expect_initiate; break; case send_ready: rc = produce_ready (msg_); if (rc == 0) state = connected; break; case send_error: rc = produce_error (msg_); if (rc == 0) state = error_sent; break; default: errno = EAGAIN; rc = -1; break; } return rc; }
int zmq::plain_server_t::next_handshake_command (msg_t *msg_) { int rc = 0; switch (state) { case sending_welcome: rc = produce_welcome (msg_); if (rc == 0) state = waiting_for_initiate; break; case sending_ready: rc = produce_ready (msg_); if (rc == 0) state = ready; break; case sending_error: rc = produce_error (msg_); if (rc == 0) state = error_command_sent; break; default: errno = EAGAIN; rc = -1; } return rc; }