3 * Copyright (C) Igor Sysoev
4 * Copyright (C) Nginx, Inc.
8 #include <ngx_config.h>
10 #include <ngx_event.h>
14 ngx_unix_send(ngx_connection_t
*c
, u_char
*buf
, size_t size
)
24 if ((ngx_event_flags
& NGX_USE_KQUEUE_EVENT
) && wev
->pending_eof
) {
25 (void) ngx_connection_error(c
, wev
->kq_errno
,
26 "kevent() reported about an closed connection");
34 n
= send(c
->fd
, buf
, size
, 0);
36 ngx_log_debug3(NGX_LOG_DEBUG_EVENT
, c
->log
, 0,
37 "send: fd:%d %d of %d", c
->fd
, n
, size
);
40 if (n
< (ssize_t
) size
) {
49 err
= ngx_socket_errno
;
52 ngx_log_error(NGX_LOG_ALERT
, c
->log
, err
, "send() returned zero");
57 if (err
== NGX_EAGAIN
|| err
== NGX_EINTR
) {
60 ngx_log_debug0(NGX_LOG_DEBUG_EVENT
, c
->log
, err
,
63 if (err
== NGX_EAGAIN
) {
69 (void) ngx_connection_error(c
, err
, "send() failed");