提交 5ae7ebc1 authored 作者: Viktor Krikun's avatar Viktor Krikun 提交者: Travis Cross

Fix mistaken NO_ZRTP_QUICK events after Hello received

(closes #20)
上级 5a61e580
...@@ -129,7 +129,7 @@ ...@@ -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
/** /**
......
...@@ -698,6 +698,9 @@ struct zrtp_stream_t ...@@ -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;
......
...@@ -12,8 +12,8 @@ ...@@ -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__*/
...@@ -428,6 +428,7 @@ zrtp_status_t zrtp_stream_attach(zrtp_session_t *session, zrtp_stream_t** stream ...@@ -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);
......
...@@ -1226,6 +1226,7 @@ zrtp_status_t _zrtp_machine_process_hello(zrtp_stream_t* stream, zrtp_rtp_info_t ...@@ -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 ...@@ -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));
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论