Fix mistaken NO_ZRTP_QUICK events after Hello received

(closes #20)
This commit is contained in:
Viktor Krikun 2010-02-22 15:13:53 +00:00 committed by Travis Cross
parent 5a61e580b9
commit 5ae7ebc1f2
5 changed files with 10 additions and 5 deletions

View File

@ -129,7 +129,7 @@
* over CSD channels. This option affect enterprise version of the library only. * over CSD channels. This option affect enterprise version of the library only.
*/ */
#ifndef ZRTP_BUILD_FOR_CSD #ifndef ZRTP_BUILD_FOR_CSD
#define ZRTP_BUILD_FOR_CSD 1 #define ZRTP_BUILD_FOR_CSD 0
#endif #endif
/** /**

View File

@ -698,6 +698,9 @@ struct zrtp_stream_t
*/ */
zrtp_state_t prev_state; 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 */ /*!< Reflects current state of ZRTP protocol */
zrtp_state_t state; zrtp_state_t state;

View File

@ -12,8 +12,8 @@
#define LIBZRTP_VERSION_MAJOR 1 #define LIBZRTP_VERSION_MAJOR 1
#define LIBZRTP_VERSION_MINOR 0 #define LIBZRTP_VERSION_MINOR 10
#define LIBZRTP_VERSION_BUILD 591 #define LIBZRTP_VERSION_BUILD 593
#define LIBZRTP_VERSION_STR "v1.00 590" #define LIBZRTP_VERSION_STR "v1.10 593"
#endif /*__ZRTP_VERSION_H__*/ #endif /*__ZRTP_VERSION_H__*/

View File

@ -428,6 +428,7 @@ zrtp_status_t zrtp_stream_attach(zrtp_session_t *session, zrtp_stream_t** stream
new_stream->session = session; new_stream->session = session;
new_stream->zrtp = session->zrtp; new_stream->zrtp = session->zrtp;
new_stream->mitm_mode = ZRTP_MITM_MODE_UNKN; 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.hmackey);
ZSTR_SET_EMPTY(new_stream->cc.peer_hmackey); ZSTR_SET_EMPTY(new_stream->cc.peer_hmackey);

View File

@ -1226,6 +1226,7 @@ zrtp_status_t _zrtp_machine_process_hello(zrtp_stream_t* stream, zrtp_rtp_info_t
/* Copy packet for future hashing */ /* Copy packet for future hashing */
zrtp_memcpy(&stream->messages.peer_hello, peer_hello, zrtp_ntoh16(peer_hello->hdr.length)*4); 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. * Choose PK exchange scheme and PK mode.
@ -1250,7 +1251,7 @@ zrtp_status_t _zrtp_machine_process_hello(zrtp_stream_t* stream, zrtp_rtp_info_t
/*---------------------------------------------------------------------------*/ /*---------------------------------------------------------------------------*/
static void _send_and_resend_hello(zrtp_stream_t* stream, zrtp_retry_task_t* task) 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." 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)); " Raising ZRTP_EVENT_NO_ZRTP_QUICK event. ID=%u\n", task->_retrys, stream->id));