* over CSD channels. This option affect enterprise version of the library only.
*/
#ifndef ZRTP_BUILD_FOR_CSD
-#define ZRTP_BUILD_FOR_CSD 1
+#define ZRTP_BUILD_FOR_CSD 0
#endif
/**
*/
zrtp_state_t prev_state;
+ /** 1 means that peer Hello have been raceived within current ZRTP session */
+ uint8_t is_hello_received;
+
/*!< Reflects current state of ZRTP protocol */
zrtp_state_t state;
#define LIBZRTP_VERSION_MAJOR 1
-#define LIBZRTP_VERSION_MINOR 0
-#define LIBZRTP_VERSION_BUILD 591
-#define LIBZRTP_VERSION_STR "v1.00 590"
+#define LIBZRTP_VERSION_MINOR 10
+#define LIBZRTP_VERSION_BUILD 593
+#define LIBZRTP_VERSION_STR "v1.10 593"
#endif /*__ZRTP_VERSION_H__*/
new_stream->session = session;
new_stream->zrtp = session->zrtp;
new_stream->mitm_mode = ZRTP_MITM_MODE_UNKN;
+ new_stream->is_hello_received = 0;
ZSTR_SET_EMPTY(new_stream->cc.hmackey);
ZSTR_SET_EMPTY(new_stream->cc.peer_hmackey);
/* Copy packet for future hashing */
zrtp_memcpy(&stream->messages.peer_hello, peer_hello, zrtp_ntoh16(peer_hello->hdr.length)*4);
+ stream->is_hello_received = 1;
/*
* Choose PK exchange scheme and PK mode.
/*---------------------------------------------------------------------------*/
static void _send_and_resend_hello(zrtp_stream_t* stream, zrtp_retry_task_t* task)
{
- if (task->_retrys == ZRTP_NO_ZRTP_FAST_COUNT) {
+ if ((task->_retrys == ZRTP_NO_ZRTP_FAST_COUNT) && !stream->is_hello_received) {
ZRTP_LOG(2,(_ZTU_,"WARNING! HELLO have been resent %d times without a response."
" Raising ZRTP_EVENT_NO_ZRTP_QUICK event. ID=%u\n", task->_retrys, stream->id));