Deleted
Added
nxt_conn_write.c (768:d1f741314614) | nxt_conn_write.c (771:f349b2d68e75) |
---|---|
1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#include <nxt_main.h> 8 --- 30 unchanged lines hidden (view full) --- 39 40 b = c->write; 41 42 sb.socket = c->socket.fd; 43 sb.error = 0; 44 sb.sent = 0; 45 sb.size = 0; 46 sb.buf = b; | 1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7#include <nxt_main.h> 8 --- 30 unchanged lines hidden (view full) --- 39 40 b = c->write; 41 42 sb.socket = c->socket.fd; 43 sb.error = 0; 44 sb.sent = 0; 45 sb.size = 0; 46 sb.buf = b; |
47#if (NXT_TLS) 48 sb.tls = c->u.tls; 49#endif |
|
47 sb.limit = 10 * 1024 * 1024; 48 sb.ready = 1; 49 sb.sync = 0; 50 51 do { | 50 sb.limit = 10 * 1024 * 1024; 51 sb.ready = 1; 52 sb.sync = 0; 53 54 do { |
52 ret = nxt_conn_io_sendbuf(task, &sb); | 55 ret = c->io->sendbuf(task, &sb); |
53 54 c->socket.write_ready = sb.ready; 55 c->socket.error = sb.error; 56 57 if (ret < 0) { 58 /* ret == NXT_AGAIN || ret == NXT_ERROR. */ 59 break; 60 } --- 34 unchanged lines hidden (view full) --- 95 */ 96 c->write_timer.handler = nxt_conn_write_timer_handler; 97 nxt_timer_add(engine, &c->write_timer, 0); 98 99 } else if (ret == NXT_AGAIN) { 100 /* 101 * SSL libraries can require to toggle either write or read 102 * event if renegotiation occurs during SSL write operation. | 56 57 c->socket.write_ready = sb.ready; 58 c->socket.error = sb.error; 59 60 if (ret < 0) { 61 /* ret == NXT_AGAIN || ret == NXT_ERROR. */ 62 break; 63 } --- 34 unchanged lines hidden (view full) --- 98 */ 99 c->write_timer.handler = nxt_conn_write_timer_handler; 100 nxt_timer_add(engine, &c->write_timer, 0); 101 102 } else if (ret == NXT_AGAIN) { 103 /* 104 * SSL libraries can require to toggle either write or read 105 * event if renegotiation occurs during SSL write operation. |
103 * This case is handled on the event_io->send() level. Timer | 106 * This case is handled on the c->io->send() level. Timer |
104 * can be set here because it should be set only for write 105 * direction. 106 */ 107 nxt_conn_timer(engine, c, c->write_state, &c->write_timer); 108 109 if (nxt_fd_event_is_disabled(c->socket.write)) { 110 nxt_fd_event_enable_write(engine, &c->socket); 111 } --- 185 unchanged lines hidden (view full) --- 297nxt_event_conn_write_delayed(nxt_event_engine_t *engine, nxt_conn_t *c, 298 size_t sent) 299{ 300 return 0; 301} 302 303 304ssize_t | 107 * can be set here because it should be set only for write 108 * direction. 109 */ 110 nxt_conn_timer(engine, c, c->write_state, &c->write_timer); 111 112 if (nxt_fd_event_is_disabled(c->socket.write)) { 113 nxt_fd_event_enable_write(engine, &c->socket); 114 } --- 185 unchanged lines hidden (view full) --- 300nxt_event_conn_write_delayed(nxt_event_engine_t *engine, nxt_conn_t *c, 301 size_t sent) 302{ 303 return 0; 304} 305 306 307ssize_t |
305nxt_event_conn_io_write_chunk(nxt_conn_t *c, nxt_buf_t *b, size_t limit) 306{ 307 ssize_t ret; 308 309 ret = c->io->sendbuf(c, b, limit); 310 311 if ((ret == NXT_AGAIN || !c->socket.write_ready) 312 && nxt_fd_event_is_disabled(c->socket.write)) 313 { 314 nxt_fd_event_enable_write(c->socket.task->thread->engine, &c->socket); 315 } 316 317 return ret; 318} 319 320 321ssize_t | |
322nxt_event_conn_io_sendbuf(nxt_conn_t *c, nxt_buf_t *b, size_t limit) 323{ 324 nxt_uint_t niob; 325 struct iovec iob[NXT_IOBUF_MAX]; 326 nxt_sendbuf_coalesce_t sb; 327 328 sb.buf = b; 329 sb.iobuf = iob; --- 100 unchanged lines hidden --- | 308nxt_event_conn_io_sendbuf(nxt_conn_t *c, nxt_buf_t *b, size_t limit) 309{ 310 nxt_uint_t niob; 311 struct iovec iob[NXT_IOBUF_MAX]; 312 nxt_sendbuf_coalesce_t sb; 313 314 sb.buf = b; 315 sb.iobuf = iob; --- 100 unchanged lines hidden --- |