diff options
author | Igor Sysoev <igor@sysoev.ru> | 2017-06-06 18:57:58 +0300 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2017-06-06 18:57:58 +0300 |
commit | d0c72e07261ac3ee57573b7f41732fab76862aee (patch) | |
tree | c59663adc63aeef81a1701dc42e70b2e27b20591 | |
parent | 49e9049ed2b00f2f3ce5bacd75dbc21932836a25 (diff) | |
download | unit-d0c72e07261ac3ee57573b7f41732fab76862aee.tar.gz unit-d0c72e07261ac3ee57573b7f41732fab76862aee.tar.bz2 |
C99 style declaration of connection states.
-rw-r--r-- | src/nxt_application.c | 26 | ||||
-rw-r--r-- | src/nxt_controller.c | 59 | ||||
-rw-r--r-- | src/nxt_event_conn.h | 13 | ||||
-rw-r--r-- | src/nxt_event_conn_connect.c | 2 | ||||
-rw-r--r-- | src/nxt_event_conn_job_sendfile.c | 4 | ||||
-rw-r--r-- | src/nxt_event_conn_proxy.c | 129 | ||||
-rw-r--r-- | src/nxt_event_conn_read.c | 2 | ||||
-rw-r--r-- | src/nxt_event_conn_write.c | 2 | ||||
-rw-r--r-- | src/nxt_kqueue_engine.c | 2 |
9 files changed, 81 insertions, 158 deletions
diff --git a/src/nxt_application.c b/src/nxt_application.c index eedfd0c9..293807b0 100644 --- a/src/nxt_application.c +++ b/src/nxt_application.c @@ -827,16 +827,13 @@ nxt_app_delivery_handler(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_app_delivery_write_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, + .ready_handler = nxt_app_delivery_ready, + .error_handler = nxt_app_delivery_error, - nxt_app_delivery_ready, - NULL, - nxt_app_delivery_error, - - nxt_app_delivery_timeout, - nxt_app_delivery_timer_value, - 0, + .timer_handler = nxt_app_delivery_timeout, + .timer_value = nxt_app_delivery_timer_value, + .timer_data = 0, + .timer_autoreset = 1, }; @@ -871,16 +868,7 @@ nxt_app_delivery_ready(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_app_delivery_close_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, - - nxt_app_close_request, - NULL, - NULL, - - NULL, - NULL, - 0, + .ready_handler = nxt_app_close_request, }; diff --git a/src/nxt_controller.c b/src/nxt_controller.c index 93d0c2c5..c8522573 100644 --- a/src/nxt_controller.c +++ b/src/nxt_controller.c @@ -240,16 +240,13 @@ nxt_controller_conn_init(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_controller_conn_read_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, + .ready_handler = nxt_controller_conn_read, + .close_handler = nxt_controller_conn_close, + .error_handler = nxt_controller_conn_read_error, - nxt_controller_conn_read, - nxt_controller_conn_close, - nxt_controller_conn_read_error, - - nxt_controller_conn_read_timeout, - nxt_controller_conn_timeout_value, - 60 * 1000, + .timer_handler = nxt_controller_conn_read_timeout, + .timer_value = nxt_controller_conn_timeout_value, + .timer_data = 60 * 1000, }; @@ -365,16 +362,14 @@ nxt_controller_conn_read_timeout(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_controller_conn_body_read_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, - - nxt_controller_conn_body_read, - nxt_controller_conn_close, - nxt_controller_conn_read_error, - - nxt_controller_conn_read_timeout, - nxt_controller_conn_timeout_value, - 60 * 1000, + .ready_handler = nxt_controller_conn_body_read, + .close_handler = nxt_controller_conn_close, + .error_handler = nxt_controller_conn_read_error, + + .timer_handler = nxt_controller_conn_read_timeout, + .timer_value = nxt_controller_conn_timeout_value, + .timer_data = 60 * 1000, + .timer_autoreset = 1, }; @@ -409,16 +404,13 @@ nxt_controller_conn_body_read(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_controller_conn_write_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, + .ready_handler = nxt_controller_conn_write, + .error_handler = nxt_controller_conn_write_error, - nxt_controller_conn_write, - NULL, - nxt_controller_conn_write_error, - - nxt_controller_conn_write_timeout, - nxt_controller_conn_timeout_value, - 60 * 1000, + .timer_handler = nxt_controller_conn_write_timeout, + .timer_value = nxt_controller_conn_timeout_value, + .timer_data = 60 * 1000, + .timer_autoreset = 1, }; @@ -479,16 +471,7 @@ nxt_controller_conn_write_timeout(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_controller_conn_close_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, - - nxt_controller_conn_free, - NULL, - NULL, - - NULL, - NULL, - 0, + .ready_handler = nxt_controller_conn_free, }; diff --git a/src/nxt_event_conn.h b/src/nxt_event_conn.h index 902dff9f..02c088b8 100644 --- a/src/nxt_event_conn.h +++ b/src/nxt_event_conn.h @@ -12,18 +12,7 @@ typedef nxt_msec_t (*nxt_event_conn_timer_val_t)(nxt_event_conn_t *c, uintptr_t data); -#define NXT_EVENT_NO_BUF_PROCESS 0 -#define NXT_EVENT_BUF_PROCESS 1 -#define NXT_EVENT_BUF_COMPLETION 1 - -#define NXT_EVENT_TIMER_AUTORESET 1 -#define NXT_EVENT_TIMER_NO_AUTORESET 0 - - typedef struct { - uint8_t process_buffers; - uint8_t autoreset_timer; - nxt_work_handler_t ready_handler; nxt_work_handler_t close_handler; nxt_work_handler_t error_handler; @@ -31,6 +20,8 @@ typedef struct { nxt_work_handler_t timer_handler; nxt_event_conn_timer_val_t timer_value; uintptr_t timer_data; + + uint8_t timer_autoreset; } nxt_event_conn_state_t; diff --git a/src/nxt_event_conn_connect.c b/src/nxt_event_conn_connect.c index 7db8f704..55aa33f9 100644 --- a/src/nxt_event_conn_connect.c +++ b/src/nxt_event_conn_connect.c @@ -128,7 +128,7 @@ nxt_event_conn_connect_test(nxt_task_t *task, void *obj, void *data) nxt_fd_event_block_write(task->thread->engine, &c->socket); - if (c->write_state->autoreset_timer) { + if (c->write_state->timer_autoreset) { nxt_timer_disable(task->thread->engine, &c->write_timer); } diff --git a/src/nxt_event_conn_job_sendfile.c b/src/nxt_event_conn_job_sendfile.c index a283de86..dae5079c 100644 --- a/src/nxt_event_conn_job_sendfile.c +++ b/src/nxt_event_conn_job_sendfile.c @@ -184,7 +184,7 @@ nxt_event_conn_job_sendfile_return(nxt_task_t *task, void *obj, void *data) /* The job must be destroyed before connection error handler. */ nxt_job_destroy(task, jbs); - if (c->write_state->process_buffers) { + if (0 /* STUB: c->write_state->process_buffers */) { b = nxt_event_conn_job_sendfile_completion(task, c, b); done = (b == NULL); @@ -205,7 +205,7 @@ nxt_event_conn_job_sendfile_return(nxt_task_t *task, void *obj, void *data) } } - if (sent != 0 && c->write_state->autoreset_timer) { + if (sent != 0 && c->write_state->timer_autoreset) { nxt_timer_disable(task->thread->engine, &c->write_timer); } diff --git a/src/nxt_event_conn_proxy.c b/src/nxt_event_conn_proxy.c index 20c96370..45a6b257 100644 --- a/src/nxt_event_conn_proxy.c +++ b/src/nxt_event_conn_proxy.c @@ -142,16 +142,13 @@ nxt_event_conn_proxy(nxt_task_t *task, nxt_event_conn_proxy_t *p) static const nxt_event_conn_state_t nxt_event_conn_proxy_client_wait_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, + .ready_handler = nxt_event_conn_proxy_client_buffer_alloc, + .close_handler = nxt_event_conn_proxy_close, + .error_handler = nxt_event_conn_proxy_error, - nxt_event_conn_proxy_client_buffer_alloc, - nxt_event_conn_proxy_close, - nxt_event_conn_proxy_error, - - nxt_event_conn_proxy_read_timeout, - nxt_event_conn_proxy_timeout_value, - offsetof(nxt_event_conn_proxy_t, client_wait_timeout), + .timer_handler = nxt_event_conn_proxy_read_timeout, + .timer_value = nxt_event_conn_proxy_timeout_value, + .timer_data = offsetof(nxt_event_conn_proxy_t, client_wait_timeout), }; @@ -210,16 +207,14 @@ static const nxt_event_conn_state_t nxt_event_conn_proxy_client_first_read_state nxt_aligned(64) = { - NXT_EVENT_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, - - nxt_event_conn_proxy_peer_connect, - nxt_event_conn_proxy_close, - nxt_event_conn_proxy_error, + .ready_handler = nxt_event_conn_proxy_peer_connect, + .close_handler = nxt_event_conn_proxy_close, + .error_handler = nxt_event_conn_proxy_error, - nxt_event_conn_proxy_read_timeout, - nxt_event_conn_proxy_timeout_value, - offsetof(nxt_event_conn_proxy_t, client_wait_timeout), + .timer_handler = nxt_event_conn_proxy_read_timeout, + .timer_value = nxt_event_conn_proxy_timeout_value, + .timer_data = offsetof(nxt_event_conn_proxy_t, client_wait_timeout), + .timer_autoreset = 1, }; @@ -250,16 +245,14 @@ nxt_event_conn_proxy_peer_connect(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_peer_connect_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, - - nxt_event_conn_proxy_connected, - nxt_event_conn_proxy_refused, - nxt_event_conn_proxy_error, + .ready_handler = nxt_event_conn_proxy_connected, + .close_handler = nxt_event_conn_proxy_refused, + .error_handler = nxt_event_conn_proxy_error, - nxt_event_conn_proxy_write_timeout, - nxt_event_conn_proxy_timeout_value, - offsetof(nxt_event_conn_proxy_t, connect_timeout), + .timer_handler = nxt_event_conn_proxy_write_timeout, + .timer_value = nxt_event_conn_proxy_timeout_value, + .timer_data = offsetof(nxt_event_conn_proxy_t, connect_timeout), + .timer_autoreset = 1, }; @@ -303,16 +296,13 @@ nxt_event_conn_proxy_connected(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_peer_wait_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, + .ready_handler = nxt_event_conn_proxy_peer_read, + .close_handler = nxt_event_conn_proxy_close, + .error_handler = nxt_event_conn_proxy_error, - nxt_event_conn_proxy_peer_read, - nxt_event_conn_proxy_close, - nxt_event_conn_proxy_error, - - nxt_event_conn_proxy_read_timeout, - nxt_event_conn_proxy_timeout_value, - offsetof(nxt_event_conn_proxy_t, peer_wait_timeout), + .timer_handler = nxt_event_conn_proxy_read_timeout, + .timer_value = nxt_event_conn_proxy_timeout_value, + .timer_data = offsetof(nxt_event_conn_proxy_t, peer_wait_timeout), }; @@ -357,16 +347,9 @@ nxt_event_conn_proxy_peer_read(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_client_read_state nxt_aligned(64) = { - NXT_EVENT_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, - - nxt_event_conn_proxy_client_read_ready, - nxt_event_conn_proxy_close, - nxt_event_conn_proxy_read_error, - - NULL, - NULL, - 0, + .ready_handler = nxt_event_conn_proxy_client_read_ready, + .close_handler = nxt_event_conn_proxy_close, + .error_handler = nxt_event_conn_proxy_read_error, }; @@ -389,16 +372,9 @@ nxt_event_conn_proxy_client_read_ready(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_peer_read_state nxt_aligned(64) = { - NXT_EVENT_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, - - nxt_event_conn_proxy_peer_read_ready, - nxt_event_conn_proxy_close, - nxt_event_conn_proxy_read_error, - - NULL, - NULL, - 0, + .ready_handler = nxt_event_conn_proxy_peer_read_ready, + .close_handler = nxt_event_conn_proxy_close, + .error_handler = nxt_event_conn_proxy_read_error, }; @@ -556,16 +532,13 @@ nxt_event_conn_proxy_read(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_client_write_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, - - nxt_event_conn_proxy_client_write_ready, - NULL, - nxt_event_conn_proxy_write_error, + .ready_handler = nxt_event_conn_proxy_client_write_ready, + .error_handler = nxt_event_conn_proxy_write_error, - nxt_event_conn_proxy_write_timeout, - nxt_event_conn_proxy_timeout_value, - offsetof(nxt_event_conn_proxy_t, client_write_timeout), + .timer_handler = nxt_event_conn_proxy_write_timeout, + .timer_value = nxt_event_conn_proxy_timeout_value, + .timer_data = offsetof(nxt_event_conn_proxy_t, client_write_timeout), + .timer_autoreset = 1, }; @@ -588,16 +561,13 @@ nxt_event_conn_proxy_client_write_ready(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_peer_write_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_AUTORESET, + .ready_handler = nxt_event_conn_proxy_peer_write_ready, + .error_handler = nxt_event_conn_proxy_write_error, - nxt_event_conn_proxy_peer_write_ready, - NULL, - nxt_event_conn_proxy_write_error, - - nxt_event_conn_proxy_write_timeout, - nxt_event_conn_proxy_timeout_value, - offsetof(nxt_event_conn_proxy_t, peer_write_timeout), + .timer_handler = nxt_event_conn_proxy_write_timeout, + .timer_value = nxt_event_conn_proxy_timeout_value, + .timer_data = offsetof(nxt_event_conn_proxy_t, peer_write_timeout), + .timer_autoreset = 1, }; @@ -993,16 +963,7 @@ nxt_event_conn_proxy_write_error(nxt_task_t *task, void *obj, void *data) static const nxt_event_conn_state_t nxt_event_conn_proxy_close_state nxt_aligned(64) = { - NXT_EVENT_NO_BUF_PROCESS, - NXT_EVENT_TIMER_NO_AUTORESET, - - nxt_event_conn_proxy_completion, - NULL, - NULL, - - NULL, - NULL, - 0, + .ready_handler = nxt_event_conn_proxy_completion, }; diff --git a/src/nxt_event_conn_read.c b/src/nxt_event_conn_read.c index d898c694..be2dfdb2 100644 --- a/src/nxt_event_conn_read.c +++ b/src/nxt_event_conn_read.c @@ -72,7 +72,7 @@ nxt_event_conn_io_read(nxt_task_t *task, void *obj, void *data) nxt_fd_event_block_read(engine, &c->socket); - if (state->autoreset_timer) { + if (state->timer_autoreset) { nxt_timer_disable(engine, &c->read_timer); } diff --git a/src/nxt_event_conn_write.c b/src/nxt_event_conn_write.c index 4ac6e2d8..fa5b9241 100644 --- a/src/nxt_event_conn_write.c +++ b/src/nxt_event_conn_write.c @@ -77,7 +77,7 @@ nxt_conn_io_write(nxt_task_t *task, void *obj, void *data) nxt_debug(task, "event conn: %i sent:%z", ret, sb.sent); if (sb.sent != 0) { - if (c->write_state->autoreset_timer) { + if (c->write_state->timer_autoreset) { nxt_timer_disable(engine, &c->write_timer); } } diff --git a/src/nxt_kqueue_engine.c b/src/nxt_kqueue_engine.c index d15ce15a..c5e40eeb 100644 --- a/src/nxt_kqueue_engine.c +++ b/src/nxt_kqueue_engine.c @@ -902,7 +902,7 @@ nxt_kqueue_event_conn_connected(nxt_task_t *task, void *obj, void *data) c->socket.write = NXT_EVENT_BLOCKED; - if (c->write_state->autoreset_timer) { + if (c->write_state->timer_autoreset) { nxt_timer_disable(task->thread->engine, &c->write_timer); } |