summary |
shortlog |
log |
commit | commitdiff |
review |
tree
raw |
patch |
inline | side by side (from parent 1:
9ffec14)
Type: fix
Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I4a2e8f864df7269ec5a3c4fd4d8785a67b687d58
{
case SESSION_IO_EVT_RX:
s = session_get (evt->session_index, thread_index);
{
case SESSION_IO_EVT_RX:
s = session_get (evt->session_index, thread_index);
- s->flags &= ~SESSION_F_RX_EVT;
/* Application didn't confirm accept yet */
/* Application didn't confirm accept yet */
- if (PREDICT_FALSE (s->session_state == SESSION_STATE_ACCEPTING))
+ if (PREDICT_FALSE (s->session_state == SESSION_STATE_ACCEPTING ||
+ s->session_state == SESSION_STATE_CONNECTING))
+ s->flags &= ~SESSION_F_RX_EVT;
app->cb_fns.builtin_app_rx_callback (s);
break;
/* Handle sessions that might not be on current thread */
case SESSION_IO_EVT_BUILTIN_RX:
s = session_get_from_handle_if_valid (evt->session_handle);
app->cb_fns.builtin_app_rx_callback (s);
break;
/* Handle sessions that might not be on current thread */
case SESSION_IO_EVT_BUILTIN_RX:
s = session_get_from_handle_if_valid (evt->session_handle);
- if (!s || s->session_state == SESSION_STATE_ACCEPTING)
+ if (!s || s->session_state == SESSION_STATE_ACCEPTING ||
+ s->session_state == SESSION_STATE_CONNECTING)
break;
s->flags &= ~SESSION_F_RX_EVT;
app->cb_fns.builtin_app_rx_callback (s);
break;
s->flags &= ~SESSION_F_RX_EVT;
app->cb_fns.builtin_app_rx_callback (s);
s->app_wrk_index = SESSION_INVALID_INDEX;
break;
}
s->app_wrk_index = SESSION_INVALID_INDEX;
break;
}
- if (is_builtin && was_closed)
- app_worker_close_notify (app_wrk, s);
+ if (is_builtin)
+ {
+ if (s->flags & SESSION_F_RX_EVT)
+ {
+ s->flags &= ~SESSION_F_RX_EVT;
+ app->cb_fns.builtin_app_rx_callback (s);
+ }
+ if (was_closed)
+ app_worker_close_notify (app_wrk, s);
+ }
break;
case SESSION_CTRL_EVT_CONNECTED:
if (!(evt->as_u64[1] & 0xffffffff))
break;
case SESSION_CTRL_EVT_CONNECTED:
if (!(evt->as_u64[1] & 0xffffffff))
}
if (was_closed)
app_worker_close_notify (app_wrk, s);
}
if (was_closed)
app_worker_close_notify (app_wrk, s);
+ if (s->flags & SESSION_F_RX_EVT)
+ {
+ s->flags &= ~SESSION_F_RX_EVT;
+ app->cb_fns.builtin_app_rx_callback (s);
+ }
break;
case SESSION_CTRL_EVT_DISCONNECTED:
s = session_get (evt->session_index, thread_index);
break;
case SESSION_CTRL_EVT_DISCONNECTED:
s = session_get (evt->session_index, thread_index);