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.
*/
#ifndef ZRTP_BUILD_FOR_CSD
#define ZRTP_BUILD_FOR_CSD 1
#define ZRTP_BUILD_FOR_CSD 0
#endif
/**

View File

@ -698,6 +698,9 @@ struct zrtp_stream_t
*/
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;

View File

@ -12,8 +12,8 @@
#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__*/

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->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);

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 */
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.
@ -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)
{
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));