vcl: RX event may lost when accept session repeatedly

Type: fix

Some applications may call accept repeatedly to process all connect
request until get EAGIAIN error. Subsequent call may get RX event of
previous accepted session, then should process it rather than just
discard it.

Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: Ice53442de66289a62591b79a9cc31e883e894c23
(cherry picked from commit 96453fd2417ebd1d69354a7fb692976129cea80e)
This commit is contained in:
wanghanlin 2019-12-16 19:14:39 +08:00 committed by Andrew Yourtchenko
parent ec12ffe1bd
commit 889ea0f54c

View File

@ -1475,7 +1475,7 @@ vppcom_session_accept (uint32_t listen_session_handle, vppcom_endpt_t * ep,
e = svm_msg_q_msg_data (wrk->app_event_queue, &msg);
if (e->event_type != SESSION_CTRL_EVT_ACCEPTED)
{
VDBG (0, "discarded event: %u", e->event_type);
vcl_handle_mq_event (wrk, e);
svm_msg_q_free_msg (wrk->app_event_queue, &msg);
continue;
}