Lines Matching refs:tcp
33 * Threshold of active tcp streams for which to preallocate tcp read buffers.
166 handle->tcp.serv.accept_reqs = NULL;
167 handle->tcp.serv.pending_accepts = NULL;
170 handle->tcp.serv.func_acceptex = NULL;
171 handle->tcp.conn.func_connectex = NULL;
172 handle->tcp.serv.processed_accepts = 0;
245 if (!(handle->flags & UV_HANDLE_CONNECTION) && handle->tcp.serv.accept_reqs) {
248 req = &handle->tcp.serv.accept_reqs[i];
260 uv__free(handle->tcp.serv.accept_reqs);
261 handle->tcp.serv.accept_reqs = NULL;
433 success = handle->tcp.serv.func_acceptex(handle->socket,
493 handle->tcp.conn.read_buffer = uv_buf_init(NULL, 0);
494 handle->alloc_cb((uv_handle_t*) handle, 65536, &handle->tcp.conn.read_buffer);
495 if (handle->tcp.conn.read_buffer.base == NULL ||
496 handle->tcp.conn.read_buffer.len == 0) {
497 handle->read_cb((uv_stream_t*) handle, UV_ENOBUFS, &handle->tcp.conn.read_buffer);
500 assert(handle->tcp.conn.read_buffer.base != NULL);
501 buf = handle->tcp.conn.read_buffer;
594 if (!handle->tcp.serv.func_acceptex) {
595 if (!uv__get_acceptex_function(handle->socket, &handle->tcp.serv.func_acceptex)) {
613 if (handle->tcp.serv.accept_reqs == NULL) {
614 handle->tcp.serv.accept_reqs =
616 if (!handle->tcp.serv.accept_reqs) {
621 req = &handle->tcp.serv.accept_reqs[i];
643 req = &handle->tcp.serv.accept_reqs[i];
661 uv_tcp_accept_t* req = server->tcp.serv.pending_accepts;
692 server->tcp.serv.pending_accepts = req->next_pending;
704 server->tcp.serv.processed_accepts++;
706 if (server->tcp.serv.processed_accepts >= uv_simultaneous_server_accepts) {
707 server->tcp.serv.processed_accepts = 0;
712 uv__tcp_queue_accept(server, &server->tcp.serv.accept_reqs[0]);
820 if (!handle->tcp.conn.func_connectex) {
821 if (!uv__get_connectex_function(handle->socket, &handle->tcp.conn.func_connectex)) {
860 success = handle->tcp.conn.func_connectex(handle->socket,
1017 uv_buf_init(NULL, 0) : handle->tcp.conn.read_buffer;
1039 &handle->tcp.conn.read_buffer);
1041 if (req->u.io.overlapped.InternalHigh < handle->tcp.conn.read_buffer.len) {
1053 handle->read_cb((uv_stream_t*)handle, UV_EOF, &handle->tcp.conn.read_buffer);
1202 req->next_pending = handle->tcp.serv.pending_accepts;
1203 handle->tcp.serv.pending_accepts = req;
1299 int uv__tcp_xfer_import(uv_tcp_t* tcp,
1320 tcp->loop, tcp, socket, xfer_info->socket_info.iAddressFamily, 1);
1326 tcp->delayed_error = xfer_info->delayed_error;
1327 tcp->flags |= UV_HANDLE_BOUND | UV_HANDLE_SHARED_TCP_SOCKET;
1330 uv__connection_init((uv_stream_t*)tcp);
1331 tcp->flags |= UV_HANDLE_READABLE | UV_HANDLE_WRITABLE;
1334 tcp->loop->active_tcp_streams++;
1411 static void uv__tcp_try_cancel_reqs(uv_tcp_t* tcp) {
1417 socket = tcp->socket;
1418 reading = tcp->flags & UV_HANDLE_READ_PENDING;
1419 writing = tcp->stream.conn.write_reqs_pending > 0;
1426 CancelIoEx((HANDLE) socket, &tcp->read_req.u.io.overlapped);
1431 non_ifs_lsp = (tcp->flags & UV_HANDLE_IPV6) ? uv_tcp_non_ifs_lsp_ipv6 :
1454 if (socket != tcp->socket) {
1456 CancelIoEx((HANDLE) socket, &tcp->read_req.u.io.overlapped);
1463 void uv__tcp_close(uv_loop_t* loop, uv_tcp_t* tcp) {
1464 if (tcp->flags & UV_HANDLE_CONNECTION) {
1465 if (tcp->flags & UV_HANDLE_READING) {
1466 uv_read_stop((uv_stream_t*) tcp);
1468 uv__tcp_try_cancel_reqs(tcp);
1470 if (tcp->tcp.serv.accept_reqs != NULL) {
1475 uv_tcp_accept_t* req = &tcp->tcp.serv.accept_reqs[i];
1482 assert(!(tcp->flags & UV_HANDLE_READING));
1485 if (tcp->flags & UV_HANDLE_LISTENING) {
1486 tcp->flags &= ~UV_HANDLE_LISTENING;
1487 DECREASE_ACTIVE_COUNT(loop, tcp);
1490 tcp->flags &= ~(UV_HANDLE_READABLE | UV_HANDLE_WRITABLE);
1491 uv__handle_closing(tcp);
1498 if (!(tcp->flags & UV_HANDLE_CONNECTION) ||
1499 tcp->stream.conn.write_reqs_pending == 0) {
1500 closesocket(tcp->socket);
1501 tcp->socket = INVALID_SOCKET;
1504 if (tcp->reqs_pending == 0)
1505 uv__want_endgame(loop, (uv_handle_t*) tcp);