Deleted
Added
nxt_router.c (1915:48167dd83aa5) | nxt_router.c (1920:7c19530e2502) |
---|---|
1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) Valentin V. Bartenev 5 * Copyright (C) NGINX, Inc. 6 */ 7 8#include <nxt_router.h> --- 30 unchanged lines hidden (view full) --- 39 40 41#if (NXT_TLS) 42 43typedef struct { 44 nxt_str_t name; 45 nxt_socket_conf_t *socket_conf; 46 nxt_router_temp_conf_t *temp_conf; | 1 2/* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) Valentin V. Bartenev 5 * Copyright (C) NGINX, Inc. 6 */ 7 8#include <nxt_router.h> --- 30 unchanged lines hidden (view full) --- 39 40 41#if (NXT_TLS) 42 43typedef struct { 44 nxt_str_t name; 45 nxt_socket_conf_t *socket_conf; 46 nxt_router_temp_conf_t *temp_conf; |
47 nxt_conf_value_t *conf_cmds; | 47 nxt_tls_init_t *tls_init; |
48 nxt_bool_t last; 49 | 48 nxt_bool_t last; 49 |
50 nxt_queue_link_t link; /* for nxt_socket_conf_t.tls */ | 50 nxt_queue_link_t link; /* for nxt_socket_conf_t.tls */ |
51} nxt_router_tlssock_t; 52 53#endif 54 55 56typedef struct { 57 nxt_str_t *name; 58 nxt_socket_conf_t *socket_conf; --- 59 unchanged lines hidden (view full) --- 118static void nxt_router_listen_socket_ready(nxt_task_t *task, 119 nxt_port_recv_msg_t *msg, void *data); 120static void nxt_router_listen_socket_error(nxt_task_t *task, 121 nxt_port_recv_msg_t *msg, void *data); 122#if (NXT_TLS) 123static void nxt_router_tls_rpc_handler(nxt_task_t *task, 124 nxt_port_recv_msg_t *msg, void *data); 125static nxt_int_t nxt_router_conf_tls_insert(nxt_router_temp_conf_t *tmcf, | 51} nxt_router_tlssock_t; 52 53#endif 54 55 56typedef struct { 57 nxt_str_t *name; 58 nxt_socket_conf_t *socket_conf; --- 59 unchanged lines hidden (view full) --- 118static void nxt_router_listen_socket_ready(nxt_task_t *task, 119 nxt_port_recv_msg_t *msg, void *data); 120static void nxt_router_listen_socket_error(nxt_task_t *task, 121 nxt_port_recv_msg_t *msg, void *data); 122#if (NXT_TLS) 123static void nxt_router_tls_rpc_handler(nxt_task_t *task, 124 nxt_port_recv_msg_t *msg, void *data); 125static nxt_int_t nxt_router_conf_tls_insert(nxt_router_temp_conf_t *tmcf, |
126 nxt_conf_value_t *value, nxt_socket_conf_t *skcf, 127 nxt_conf_value_t * conf_cmds, nxt_bool_t last); | 126 nxt_conf_value_t *value, nxt_socket_conf_t *skcf, nxt_tls_init_t *tls_init, 127 nxt_bool_t last); |
128#endif 129static void nxt_router_app_rpc_create(nxt_task_t *task, 130 nxt_router_temp_conf_t *tmcf, nxt_app_t *app); 131static void nxt_router_app_prefork_ready(nxt_task_t *task, 132 nxt_port_recv_msg_t *msg, void *data); 133static void nxt_router_app_prefork_error(nxt_task_t *task, 134 nxt_port_recv_msg_t *msg, void *data); 135static nxt_socket_conf_t *nxt_router_socket_conf(nxt_task_t *task, --- 1200 unchanged lines hidden (view full) --- 1336 nxt_str_t name, path, target; 1337 nxt_app_t *app, *prev; 1338 nxt_str_t *t, *s, *targets; 1339 nxt_uint_t n, i; 1340 nxt_port_t *port; 1341 nxt_router_t *router; 1342 nxt_app_joint_t *app_joint; 1343#if (NXT_TLS) | 128#endif 129static void nxt_router_app_rpc_create(nxt_task_t *task, 130 nxt_router_temp_conf_t *tmcf, nxt_app_t *app); 131static void nxt_router_app_prefork_ready(nxt_task_t *task, 132 nxt_port_recv_msg_t *msg, void *data); 133static void nxt_router_app_prefork_error(nxt_task_t *task, 134 nxt_port_recv_msg_t *msg, void *data); 135static nxt_socket_conf_t *nxt_router_socket_conf(nxt_task_t *task, --- 1200 unchanged lines hidden (view full) --- 1336 nxt_str_t name, path, target; 1337 nxt_app_t *app, *prev; 1338 nxt_str_t *t, *s, *targets; 1339 nxt_uint_t n, i; 1340 nxt_port_t *port; 1341 nxt_router_t *router; 1342 nxt_app_joint_t *app_joint; 1343#if (NXT_TLS) |
1344 nxt_conf_value_t *certificate, *conf_cmds; | 1344 nxt_tls_init_t *tls_init; 1345 nxt_conf_value_t *certificate; |
1345#endif 1346 nxt_conf_value_t *conf, *http, *value, *websocket; 1347 nxt_conf_value_t *applications, *application; 1348 nxt_conf_value_t *listeners, *listener; 1349 nxt_conf_value_t *routes_conf, *static_conf; 1350 nxt_socket_conf_t *skcf; 1351 nxt_http_routes_t *routes; 1352 nxt_event_engine_t *engine; --- 5 unchanged lines hidden (view full) --- 1358 static nxt_str_t http_path = nxt_string("/settings/http"); 1359 static nxt_str_t applications_path = nxt_string("/applications"); 1360 static nxt_str_t listeners_path = nxt_string("/listeners"); 1361 static nxt_str_t routes_path = nxt_string("/routes"); 1362 static nxt_str_t access_log_path = nxt_string("/access_log"); 1363#if (NXT_TLS) 1364 static nxt_str_t certificate_path = nxt_string("/tls/certificate"); 1365 static nxt_str_t conf_commands_path = nxt_string("/tls/conf_commands"); | 1346#endif 1347 nxt_conf_value_t *conf, *http, *value, *websocket; 1348 nxt_conf_value_t *applications, *application; 1349 nxt_conf_value_t *listeners, *listener; 1350 nxt_conf_value_t *routes_conf, *static_conf; 1351 nxt_socket_conf_t *skcf; 1352 nxt_http_routes_t *routes; 1353 nxt_event_engine_t *engine; --- 5 unchanged lines hidden (view full) --- 1359 static nxt_str_t http_path = nxt_string("/settings/http"); 1360 static nxt_str_t applications_path = nxt_string("/applications"); 1361 static nxt_str_t listeners_path = nxt_string("/listeners"); 1362 static nxt_str_t routes_path = nxt_string("/routes"); 1363 static nxt_str_t access_log_path = nxt_string("/access_log"); 1364#if (NXT_TLS) 1365 static nxt_str_t certificate_path = nxt_string("/tls/certificate"); 1366 static nxt_str_t conf_commands_path = nxt_string("/tls/conf_commands"); |
1367 static nxt_str_t conf_cache_path = nxt_string("/tls/session/cache_size"); 1368 static nxt_str_t conf_timeout_path = nxt_string("/tls/session/timeout"); |
|
1366#endif 1367 static nxt_str_t static_path = nxt_string("/settings/http/static"); 1368 static nxt_str_t websocket_path = nxt_string("/settings/http/websocket"); 1369 1370 conf = nxt_conf_json_parse(tmcf->mem_pool, start, end, NULL); 1371 if (conf == NULL) { 1372 nxt_alert(task, "configuration parsing error"); 1373 return NXT_ERROR; --- 362 unchanged lines hidden (view full) --- 1736 t->start = (u_char *) task->thread->runtime->tmp; 1737 t->length = nxt_strlen(t->start); 1738 } 1739 1740#if (NXT_TLS) 1741 certificate = nxt_conf_get_path(listener, &certificate_path); 1742 1743 if (certificate != NULL) { | 1369#endif 1370 static nxt_str_t static_path = nxt_string("/settings/http/static"); 1371 static nxt_str_t websocket_path = nxt_string("/settings/http/websocket"); 1372 1373 conf = nxt_conf_json_parse(tmcf->mem_pool, start, end, NULL); 1374 if (conf == NULL) { 1375 nxt_alert(task, "configuration parsing error"); 1376 return NXT_ERROR; --- 362 unchanged lines hidden (view full) --- 1739 t->start = (u_char *) task->thread->runtime->tmp; 1740 t->length = nxt_strlen(t->start); 1741 } 1742 1743#if (NXT_TLS) 1744 certificate = nxt_conf_get_path(listener, &certificate_path); 1745 1746 if (certificate != NULL) { |
1744 conf_cmds = nxt_conf_get_path(listener, &conf_commands_path); | 1747 tls_init = nxt_mp_get(tmcf->mem_pool, sizeof(nxt_tls_init_t)); 1748 if (nxt_slow_path(tls_init == NULL)) { 1749 return NXT_ERROR; 1750 } |
1745 | 1751 |
1752 tls_init->cache_size = 0; 1753 tls_init->timeout = 300; 1754 1755 value = nxt_conf_get_path(listener, &conf_cache_path); 1756 if (value != NULL) { 1757 tls_init->cache_size = nxt_conf_get_number(value); 1758 } 1759 1760 value = nxt_conf_get_path(listener, &conf_timeout_path); 1761 if (value != NULL) { 1762 tls_init->timeout = nxt_conf_get_number(value); 1763 } 1764 1765 tls_init->conf_cmds = nxt_conf_get_path(listener, 1766 &conf_commands_path); 1767 |
|
1746 if (nxt_conf_type(certificate) == NXT_CONF_ARRAY) { 1747 n = nxt_conf_array_elements_count(certificate); 1748 1749 for (i = 0; i < n; i++) { 1750 value = nxt_conf_get_array_element(certificate, i); 1751 1752 nxt_assert(value != NULL); 1753 1754 ret = nxt_router_conf_tls_insert(tmcf, value, skcf, | 1768 if (nxt_conf_type(certificate) == NXT_CONF_ARRAY) { 1769 n = nxt_conf_array_elements_count(certificate); 1770 1771 for (i = 0; i < n; i++) { 1772 value = nxt_conf_get_array_element(certificate, i); 1773 1774 nxt_assert(value != NULL); 1775 1776 ret = nxt_router_conf_tls_insert(tmcf, value, skcf, |
1755 conf_cmds, i == 0); | 1777 tls_init, i == 0); |
1756 if (nxt_slow_path(ret != NXT_OK)) { 1757 goto fail; 1758 } 1759 } 1760 1761 } else { 1762 /* NXT_CONF_STRING */ 1763 ret = nxt_router_conf_tls_insert(tmcf, certificate, skcf, | 1778 if (nxt_slow_path(ret != NXT_OK)) { 1779 goto fail; 1780 } 1781 } 1782 1783 } else { 1784 /* NXT_CONF_STRING */ 1785 ret = nxt_router_conf_tls_insert(tmcf, certificate, skcf, |
1764 conf_cmds, 1); | 1786 tls_init, 1); |
1765 if (nxt_slow_path(ret != NXT_OK)) { 1766 goto fail; 1767 } 1768 } 1769 } 1770#endif 1771 1772 skcf->listen->handler = nxt_http_conn_init; --- 78 unchanged lines hidden (view full) --- 1851} 1852 1853 1854#if (NXT_TLS) 1855 1856static nxt_int_t 1857nxt_router_conf_tls_insert(nxt_router_temp_conf_t *tmcf, 1858 nxt_conf_value_t *value, nxt_socket_conf_t *skcf, | 1787 if (nxt_slow_path(ret != NXT_OK)) { 1788 goto fail; 1789 } 1790 } 1791 } 1792#endif 1793 1794 skcf->listen->handler = nxt_http_conn_init; --- 78 unchanged lines hidden (view full) --- 1873} 1874 1875 1876#if (NXT_TLS) 1877 1878static nxt_int_t 1879nxt_router_conf_tls_insert(nxt_router_temp_conf_t *tmcf, 1880 nxt_conf_value_t *value, nxt_socket_conf_t *skcf, |
1859 nxt_conf_value_t *conf_cmds, nxt_bool_t last) | 1881 nxt_tls_init_t *tls_init, nxt_bool_t last) |
1860{ 1861 nxt_router_tlssock_t *tls; 1862 1863 tls = nxt_mp_get(tmcf->mem_pool, sizeof(nxt_router_tlssock_t)); 1864 if (nxt_slow_path(tls == NULL)) { 1865 return NXT_ERROR; 1866 } 1867 | 1882{ 1883 nxt_router_tlssock_t *tls; 1884 1885 tls = nxt_mp_get(tmcf->mem_pool, sizeof(nxt_router_tlssock_t)); 1886 if (nxt_slow_path(tls == NULL)) { 1887 return NXT_ERROR; 1888 } 1889 |
1890 tls->tls_init = tls_init; |
|
1868 tls->socket_conf = skcf; | 1891 tls->socket_conf = skcf; |
1869 tls->conf_cmds = conf_cmds; | |
1870 tls->temp_conf = tmcf; 1871 tls->last = last; 1872 nxt_conf_get_string(value, &tls->name); 1873 1874 nxt_queue_insert_tail(&tmcf->tls, &tls->link); 1875 1876 return NXT_OK; 1877} --- 584 unchanged lines hidden (view full) --- 2462 2463 tlscf->no_wait_shutdown = 1; 2464 tls->socket_conf->tls = tlscf; 2465 2466 } else { 2467 tlscf = tls->socket_conf->tls; 2468 } 2469 | 1892 tls->temp_conf = tmcf; 1893 tls->last = last; 1894 nxt_conf_get_string(value, &tls->name); 1895 1896 nxt_queue_insert_tail(&tmcf->tls, &tls->link); 1897 1898 return NXT_OK; 1899} --- 584 unchanged lines hidden (view full) --- 2484 2485 tlscf->no_wait_shutdown = 1; 2486 tls->socket_conf->tls = tlscf; 2487 2488 } else { 2489 tlscf = tls->socket_conf->tls; 2490 } 2491 |
2492 tls->tls_init->conf = tlscf; 2493 |
|
2470 bundle = nxt_mp_get(mp, sizeof(nxt_tls_bundle_conf_t)); 2471 if (nxt_slow_path(bundle == NULL)) { 2472 goto fail; 2473 } 2474 2475 if (nxt_slow_path(nxt_str_dup(mp, &bundle->name, &tls->name) == NULL)) { 2476 goto fail; 2477 } 2478 2479 bundle->chain_file = msg->fd[0]; 2480 bundle->next = tlscf->bundle; 2481 tlscf->bundle = bundle; 2482 | 2494 bundle = nxt_mp_get(mp, sizeof(nxt_tls_bundle_conf_t)); 2495 if (nxt_slow_path(bundle == NULL)) { 2496 goto fail; 2497 } 2498 2499 if (nxt_slow_path(nxt_str_dup(mp, &bundle->name, &tls->name) == NULL)) { 2500 goto fail; 2501 } 2502 2503 bundle->chain_file = msg->fd[0]; 2504 bundle->next = tlscf->bundle; 2505 tlscf->bundle = bundle; 2506 |
2483 ret = task->thread->runtime->tls->server_init(task, tlscf, mp, 2484 tls->conf_cmds, tls->last); | 2507 ret = task->thread->runtime->tls->server_init(task, mp, tls->tls_init, 2508 tls->last); |
2485 if (nxt_slow_path(ret != NXT_OK)) { 2486 goto fail; 2487 } 2488 2489 nxt_work_queue_add(&task->thread->engine->fast_work_queue, 2490 nxt_router_conf_apply, task, tmcf, NULL); 2491 return; 2492 --- 3123 unchanged lines hidden --- | 2509 if (nxt_slow_path(ret != NXT_OK)) { 2510 goto fail; 2511 } 2512 2513 nxt_work_queue_add(&task->thread->engine->fast_work_queue, 2514 nxt_router_conf_apply, task, tmcf, NULL); 2515 return; 2516 --- 3123 unchanged lines hidden --- |