evt->rpc_args.fp = data;
evt->rpc_args.arg = args;
break;
+ case SESSION_IO_EVT_RX:
case SESSION_IO_EVT_TX:
case SESSION_IO_EVT_TX_FLUSH:
case SESSION_IO_EVT_BUILTIN_RX:
rv = svm_fifo_dequeue_drop (s->tx_fifo, max_bytes);
- if (svm_fifo_needs_tx_ntf (s->tx_fifo, max_bytes))
+ if (svm_fifo_needs_deq_ntf (s->tx_fifo, max_bytes))
session_dequeue_notify (s);
return rv;
return session_notify_subscribers (app_wrk->app_index, s,
s->tx_fifo, SESSION_IO_EVT_TX);
- svm_fifo_clear_tx_ntf (s->tx_fifo);
+ svm_fifo_clear_deq_ntf (s->tx_fifo);
return 0;
}
sh = session_handle (s);
session_lookup_add_connection (tc, sh);
-
return app_worker_connect_notify (app_wrk, s, opaque);
}
if (!tc)
return VNET_API_ERROR_ADDRESS_NOT_IN_USE;
- session_lookup_del_connection (tc);
+ if (!(tc->flags & TRANSPORT_CONNECTION_F_NO_LOOKUP))
+ session_lookup_del_connection (tc);
transport_stop_listen (tp, s->connection_index);
return 0;
}