Deleted
Added
nxt_conn.c (654:b6ca49c1da1b) | nxt_conn.c (771:f349b2d68e75) |
---|---|
1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#include <nxt_main.h> 8 9 10nxt_conn_io_t nxt_unix_conn_io = { | 1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#include <nxt_main.h> 8 9 10nxt_conn_io_t nxt_unix_conn_io = { |
11 nxt_conn_io_connect, 12 nxt_conn_io_accept, | 11 .connect = nxt_conn_io_connect, 12 .accept = nxt_conn_io_accept, |
13 | 13 |
14 nxt_conn_io_read, 15 nxt_conn_io_recvbuf, 16 nxt_conn_io_recv, | 14 .read = nxt_conn_io_read, 15 .recvbuf = nxt_conn_io_recvbuf, 16 .recv = nxt_conn_io_recv, |
17 | 17 |
18 nxt_conn_io_write, 19 nxt_event_conn_io_write_chunk, | 18 .write = nxt_conn_io_write, 19 .sendbuf = nxt_conn_io_sendbuf, |
20 21#if (NXT_HAVE_LINUX_SENDFILE) | 20 21#if (NXT_HAVE_LINUX_SENDFILE) |
22 nxt_linux_event_conn_io_sendfile, | 22 .old_sendbuf = nxt_linux_event_conn_io_sendfile, |
23#elif (NXT_HAVE_FREEBSD_SENDFILE) | 23#elif (NXT_HAVE_FREEBSD_SENDFILE) |
24 nxt_freebsd_event_conn_io_sendfile, | 24 .old_sendbuf = nxt_freebsd_event_conn_io_sendfile, |
25#elif (NXT_HAVE_MACOSX_SENDFILE) | 25#elif (NXT_HAVE_MACOSX_SENDFILE) |
26 nxt_macosx_event_conn_io_sendfile, | 26 .old_sendbuf = nxt_macosx_event_conn_io_sendfile, |
27#elif (NXT_HAVE_SOLARIS_SENDFILEV) | 27#elif (NXT_HAVE_SOLARIS_SENDFILEV) |
28 nxt_solaris_event_conn_io_sendfilev, | 28 .old_sendbuf = nxt_solaris_event_conn_io_sendfilev, |
29#elif (NXT_HAVE_AIX_SEND_FILE) | 29#elif (NXT_HAVE_AIX_SEND_FILE) |
30 nxt_aix_event_conn_io_send_file, | 30 .old_sendbuf = nxt_aix_event_conn_io_send_file, |
31#elif (NXT_HAVE_HPUX_SENDFILE) | 31#elif (NXT_HAVE_HPUX_SENDFILE) |
32 nxt_hpux_event_conn_io_sendfile, | 32 .old_sendbuf = nxt_hpux_event_conn_io_sendfile, |
33#else | 33#else |
34 nxt_event_conn_io_sendbuf, | 34 .old_sendbuf = nxt_event_conn_io_sendbuf, |
35#endif 36 | 35#endif 36 |
37 nxt_event_conn_io_writev, 38 nxt_event_conn_io_send, 39 40 nxt_conn_io_shutdown, | 37 .writev = nxt_event_conn_io_writev, 38 .send = nxt_event_conn_io_send, |
41}; 42 43 44nxt_conn_t * 45nxt_conn_create(nxt_mp_t *mp, nxt_task_t *task) 46{ 47 nxt_conn_t *c; 48 nxt_thread_t *thr; --- 50 unchanged lines hidden (view full) --- 99 task->thread->engine->connections--; 100 101 mp = c->mem_pool; 102 nxt_mp_release(mp); 103} 104 105 106void | 39}; 40 41 42nxt_conn_t * 43nxt_conn_create(nxt_mp_t *mp, nxt_task_t *task) 44{ 45 nxt_conn_t *c; 46 nxt_thread_t *thr; --- 50 unchanged lines hidden (view full) --- 97 task->thread->engine->connections--; 98 99 mp = c->mem_pool; 100 nxt_mp_release(mp); 101} 102 103 104void |
107nxt_conn_io_shutdown(nxt_task_t *task, void *obj, void *data) 108{ 109 int ret; 110 nxt_conn_t *c; 111 112 static const struct linger linger_off = { 113 .l_onoff = 1, 114 .l_linger = 0, 115 }; 116 117 c = obj; 118 119 nxt_debug(task, "event conn shutdown"); 120 121 if (c->socket.timedout) { 122 /* 123 * Resetting of timed out connection on close 124 * releases kernel memory associated with socket. 125 * This also causes sending TCP/IP RST to a peer. 126 */ 127 ret = setsockopt(c->socket.fd, SOL_SOCKET, SO_LINGER, &linger_off, 128 sizeof(struct linger)); 129 130 if (nxt_slow_path(ret != 0)) { 131 nxt_alert(task, "setsockopt(%d, SO_LINGER) failed %E", 132 c->socket.fd, nxt_socket_errno); 133 } 134 } 135 136 c->write_state->close_handler(task, c, data); 137} 138 139 140void | |
141nxt_conn_timer(nxt_event_engine_t *engine, nxt_conn_t *c, 142 const nxt_conn_state_t *state, nxt_timer_t *timer) 143{ 144 nxt_msec_t value; 145 146 if (state->timer_value != NULL) { 147 value = state->timer_value(c, state->timer_data); 148 --- 73 unchanged lines hidden --- | 105nxt_conn_timer(nxt_event_engine_t *engine, nxt_conn_t *c, 106 const nxt_conn_state_t *state, nxt_timer_t *timer) 107{ 108 nxt_msec_t value; 109 110 if (state->timer_value != NULL) { 111 value = state->timer_value(c, state->timer_data); 112 --- 73 unchanged lines hidden --- |