Lines Matching defs:handle
31 static int new_socket(uv_tcp_t* handle, int domain, unsigned long flags) {
42 err = uv__stream_open((uv_stream_t*) handle, sockfd, flags);
52 if (getsockname(uv__stream_fd(handle), (struct sockaddr*) &saddr, &slen)) {
57 if (bind(uv__stream_fd(handle), (struct sockaddr*) &saddr, slen)) {
67 static int maybe_new_socket(uv_tcp_t* handle, int domain, unsigned long flags) {
72 handle->flags |= flags;
76 if (uv__stream_fd(handle) != -1) {
80 if (handle->flags & UV_HANDLE_BOUND) {
82 handle->flags |= flags;
89 if (getsockname(uv__stream_fd(handle), (struct sockaddr*) &saddr, &slen))
97 handle->flags |= flags;
102 if (bind(uv__stream_fd(handle), (struct sockaddr*) &saddr, slen))
106 handle->flags |= flags;
110 return new_socket(handle, domain, flags);
127 /* If anything fails beyond this point we need to remove the handle from
128 * the handle queue, since it was added by uv__handle_init in uv_stream_init.
206 uv_tcp_t* handle,
213 assert(handle->type == UV_TCP);
215 if (handle->connect_req != NULL)
218 if (handle->delayed_error != 0)
221 err = maybe_new_socket(handle,
229 r = connect(uv__stream_fd(handle), addr, addrlen);
249 handle->delayed_error = UV__ERR(ECONNREFUSED);
256 uv__req_init(handle->loop, req, UV_CONNECT);
258 req->handle = (uv_stream_t*) handle;
260 handle->connect_req = req;
262 uv__io_start(handle->loop, &handle->io_watcher, POLLOUT);
264 if (handle->delayed_error)
265 uv__io_feed(handle->loop, &handle->io_watcher);
271 int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock) {
274 if (uv__fd_exists(handle->loop, sock))
281 return uv__stream_open((uv_stream_t*)handle,
287 int uv_tcp_getsockname(const uv_tcp_t* handle,
291 if (handle->delayed_error)
292 return handle->delayed_error;
294 return uv__getsockpeername((const uv_handle_t*) handle,
301 int uv_tcp_getpeername(const uv_tcp_t* handle,
305 if (handle->delayed_error)
306 return handle->delayed_error;
308 return uv__getsockpeername((const uv_handle_t*) handle,
315 int uv_tcp_close_reset(uv_tcp_t* handle, uv_close_cb close_cb) {
320 if (handle->flags & UV_HANDLE_SHUTTING)
323 fd = uv__stream_fd(handle);
335 uv_close((uv_handle_t*) handle, close_cb);
422 int uv_tcp_nodelay(uv_tcp_t* handle, int on) {
425 if (uv__stream_fd(handle) != -1) {
426 err = uv__tcp_nodelay(uv__stream_fd(handle), on);
432 handle->flags |= UV_HANDLE_TCP_NODELAY;
434 handle->flags &= ~UV_HANDLE_TCP_NODELAY;
440 int uv_tcp_keepalive(uv_tcp_t* handle, int on, unsigned int delay) {
443 if (uv__stream_fd(handle) != -1) {
444 err =uv__tcp_keepalive(uv__stream_fd(handle), on, delay);
450 handle->flags |= UV_HANDLE_TCP_KEEPALIVE;
452 handle->flags &= ~UV_HANDLE_TCP_KEEPALIVE;
454 /* TODO Store delay if uv__stream_fd(handle) == -1 but don't want to enlarge
462 int uv_tcp_simultaneous_accepts(uv_tcp_t* handle, int enable) {
464 handle->flags &= ~UV_HANDLE_TCP_SINGLE_ACCEPT;
466 handle->flags |= UV_HANDLE_TCP_SINGLE_ACCEPT;
471 void uv__tcp_close(uv_tcp_t* handle) {
472 uv__stream_close((uv_stream_t*)handle);