Browse Source

Latest update - 7437, Version bump

master
Hakase 2 months ago
parent
commit
891002d554
Signed by: Hakase <hakase@hakase.app> GPG Key ID: BB2821A9E0DF48C9

+ 1
- 0
.hgtags View File

@@ -433,3 +433,4 @@ b234199c7ed8a156a6bb98f7ff58302c857c954f release-1.15.2
433 433
 f062e43d74fc2578bb100a9e82a953efa1eb9e4e release-1.15.5
434 434
 2351853ce6867b6166823bdf94333c0a76633c0a release-1.15.6
435 435
 051a039ce1c7e09144de4a4846669ec7116cecea release-1.15.7
436
+ee551e3f6dba336c0d875e266d7d55385f379b42 release-1.15.8

+ 72
- 7
contrib/vim/syntax/nginx.vim View File

@@ -108,6 +108,7 @@ syn keyword ngxDirectiveControl contained set
108 108
 syn keyword ngxDirectiveError contained error_page
109 109
 syn keyword ngxDirectiveError contained post_action
110 110
 
111
+syn keyword ngxDirectiveDeprecated contained limit_zone
111 112
 syn keyword ngxDirectiveDeprecated contained proxy_downstream_buffer
112 113
 syn keyword ngxDirectiveDeprecated contained proxy_upstream_buffer
113 114
 syn keyword ngxDirectiveDeprecated contained spdy_chunk_size
@@ -118,6 +119,7 @@ syn keyword ngxDirectiveDeprecated contained spdy_pool_size
118 119
 syn keyword ngxDirectiveDeprecated contained spdy_recv_buffer_size
119 120
 syn keyword ngxDirectiveDeprecated contained spdy_recv_timeout
120 121
 syn keyword ngxDirectiveDeprecated contained spdy_streams_index_size
122
+syn keyword ngxDirectiveDeprecated contained ssl
121 123
 syn keyword ngxDirectiveDeprecated contained upstream_conf
122 124
 
123 125
 syn keyword ngxDirective contained absolute_redirect
@@ -136,6 +138,7 @@ syn keyword ngxDirective contained alias
136 138
 syn keyword ngxDirective contained allow
137 139
 syn keyword ngxDirective contained ancient_browser
138 140
 syn keyword ngxDirective contained ancient_browser_value
141
+syn keyword ngxDirective contained api
139 142
 syn keyword ngxDirective contained auth_basic
140 143
 syn keyword ngxDirective contained auth_basic_user_file
141 144
 syn keyword ngxDirective contained auth_http
@@ -143,7 +146,11 @@ syn keyword ngxDirective contained auth_http_header
143 146
 syn keyword ngxDirective contained auth_http_pass_client_cert
144 147
 syn keyword ngxDirective contained auth_http_timeout
145 148
 syn keyword ngxDirective contained auth_jwt
149
+syn keyword ngxDirective contained auth_jwt_claim_set
150
+syn keyword ngxDirective contained auth_jwt_header_set
146 151
 syn keyword ngxDirective contained auth_jwt_key_file
152
+syn keyword ngxDirective contained auth_jwt_key_request
153
+syn keyword ngxDirective contained auth_jwt_leeway
147 154
 syn keyword ngxDirective contained auth_request
148 155
 syn keyword ngxDirective contained auth_request_set
149 156
 syn keyword ngxDirective contained autoindex
@@ -229,6 +236,7 @@ syn keyword ngxDirective contained fastcgi_read_timeout
229 236
 syn keyword ngxDirective contained fastcgi_request_buffering
230 237
 syn keyword ngxDirective contained fastcgi_send_lowat
231 238
 syn keyword ngxDirective contained fastcgi_send_timeout
239
+syn keyword ngxDirective contained fastcgi_socket_keepalive
232 240
 syn keyword ngxDirective contained fastcgi_split_path_info
233 241
 syn keyword ngxDirective contained fastcgi_store
234 242
 syn keyword ngxDirective contained fastcgi_store_access
@@ -255,6 +263,7 @@ syn keyword ngxDirective contained grpc_pass_header
255 263
 syn keyword ngxDirective contained grpc_read_timeout
256 264
 syn keyword ngxDirective contained grpc_send_timeout
257 265
 syn keyword ngxDirective contained grpc_set_header
266
+syn keyword ngxDirective contained grpc_socket_keepalive
258 267
 syn keyword ngxDirective contained grpc_ssl_certificate
259 268
 syn keyword ngxDirective contained grpc_ssl_certificate_key
260 269
 syn keyword ngxDirective contained grpc_ssl_ciphers
@@ -330,6 +339,8 @@ syn keyword ngxDirective contained keepalive
330 339
 syn keyword ngxDirective contained keepalive_disable
331 340
 syn keyword ngxDirective contained keepalive_requests
332 341
 syn keyword ngxDirective contained keepalive_timeout
342
+syn keyword ngxDirective contained keyval
343
+syn keyword ngxDirective contained keyval_zone
333 344
 syn keyword ngxDirective contained kqueue_changes
334 345
 syn keyword ngxDirective contained kqueue_events
335 346
 syn keyword ngxDirective contained large_client_header_buffers
@@ -367,6 +378,7 @@ syn keyword ngxDirective contained memcached_next_upstream_timeout
367 378
 syn keyword ngxDirective contained memcached_next_upstream_tries
368 379
 syn keyword ngxDirective contained memcached_read_timeout
369 380
 syn keyword ngxDirective contained memcached_send_timeout
381
+syn keyword ngxDirective contained memcached_socket_keepalive
370 382
 syn keyword ngxDirective contained merge_slashes
371 383
 syn keyword ngxDirective contained min_delete_depth
372 384
 syn keyword ngxDirective contained mirror
@@ -375,9 +387,9 @@ syn keyword ngxDirective contained modern_browser
375 387
 syn keyword ngxDirective contained modern_browser_value
376 388
 syn keyword ngxDirective contained mp4
377 389
 syn keyword ngxDirective contained mp4_buffer_size
378
-syn keyword ngxDirective contained mp4_max_buffer_size
379 390
 syn keyword ngxDirective contained mp4_limit_rate
380 391
 syn keyword ngxDirective contained mp4_limit_rate_after
392
+syn keyword ngxDirective contained mp4_max_buffer_size
381 393
 syn keyword ngxDirective contained msie_padding
382 394
 syn keyword ngxDirective contained msie_refresh
383 395
 syn keyword ngxDirective contained multi_accept
@@ -456,11 +468,13 @@ syn keyword ngxDirective contained proxy_protocol_timeout
456 468
 syn keyword ngxDirective contained proxy_read_timeout
457 469
 syn keyword ngxDirective contained proxy_redirect
458 470
 syn keyword ngxDirective contained proxy_request_buffering
471
+syn keyword ngxDirective contained proxy_requests
459 472
 syn keyword ngxDirective contained proxy_responses
460 473
 syn keyword ngxDirective contained proxy_send_lowat
461 474
 syn keyword ngxDirective contained proxy_send_timeout
462 475
 syn keyword ngxDirective contained proxy_set_body
463 476
 syn keyword ngxDirective contained proxy_set_header
477
+syn keyword ngxDirective contained proxy_socket_keepalive
464 478
 syn keyword ngxDirective contained proxy_ssl
465 479
 syn keyword ngxDirective contained proxy_ssl_certificate
466 480
 syn keyword ngxDirective contained proxy_ssl_certificate_key
@@ -481,6 +495,7 @@ syn keyword ngxDirective contained proxy_temp_path
481 495
 syn keyword ngxDirective contained proxy_timeout
482 496
 syn keyword ngxDirective contained proxy_upload_rate
483 497
 syn keyword ngxDirective contained queue
498
+syn keyword ngxDirective contained random
484 499
 syn keyword ngxDirective contained random_index
485 500
 syn keyword ngxDirective contained read_ahead
486 501
 syn keyword ngxDirective contained real_ip_header
@@ -533,6 +548,7 @@ syn keyword ngxDirective contained scgi_pass_request_headers
533 548
 syn keyword ngxDirective contained scgi_read_timeout
534 549
 syn keyword ngxDirective contained scgi_request_buffering
535 550
 syn keyword ngxDirective contained scgi_send_timeout
551
+syn keyword ngxDirective contained scgi_socket_keepalive
536 552
 syn keyword ngxDirective contained scgi_store
537 553
 syn keyword ngxDirective contained scgi_store_access
538 554
 syn keyword ngxDirective contained scgi_temp_file_write_size
@@ -565,7 +581,6 @@ syn keyword ngxDirective contained ssi_min_file_chunk
565 581
 syn keyword ngxDirective contained ssi_silent_errors
566 582
 syn keyword ngxDirective contained ssi_types
567 583
 syn keyword ngxDirective contained ssi_value_length
568
-syn keyword ngxDirective contained ssl
569 584
 syn keyword ngxDirective contained ssl_buffer_size
570 585
 syn keyword ngxDirective contained ssl_certificate
571 586
 syn keyword ngxDirective contained ssl_certificate_key
@@ -573,6 +588,7 @@ syn keyword ngxDirective contained ssl_ciphers
573 588
 syn keyword ngxDirective contained ssl_client_certificate
574 589
 syn keyword ngxDirective contained ssl_crl
575 590
 syn keyword ngxDirective contained ssl_dhparam
591
+syn keyword ngxDirective contained ssl_early_data
576 592
 syn keyword ngxDirective contained ssl_ecdh_curve
577 593
 syn keyword ngxDirective contained ssl_engine
578 594
 syn keyword ngxDirective contained ssl_handshake_timeout
@@ -664,6 +680,7 @@ syn keyword ngxDirective contained uwsgi_pass_request_headers
664 680
 syn keyword ngxDirective contained uwsgi_read_timeout
665 681
 syn keyword ngxDirective contained uwsgi_request_buffering
666 682
 syn keyword ngxDirective contained uwsgi_send_timeout
683
+syn keyword ngxDirective contained uwsgi_socket_keepalive
667 684
 syn keyword ngxDirective contained uwsgi_ssl_certificate
668 685
 syn keyword ngxDirective contained uwsgi_ssl_certificate_key
669 686
 syn keyword ngxDirective contained uwsgi_ssl_ciphers
@@ -701,6 +718,26 @@ syn keyword ngxDirective contained xslt_string_param
701 718
 syn keyword ngxDirective contained xslt_stylesheet
702 719
 syn keyword ngxDirective contained xslt_types
703 720
 syn keyword ngxDirective contained zone
721
+syn keyword ngxDirective contained zone_sync
722
+syn keyword ngxDirective contained zone_sync_buffers
723
+syn keyword ngxDirective contained zone_sync_connect_retry_interval
724
+syn keyword ngxDirective contained zone_sync_connect_timeout
725
+syn keyword ngxDirective contained zone_sync_interval
726
+syn keyword ngxDirective contained zone_sync_recv_buffer_size
727
+syn keyword ngxDirective contained zone_sync_server
728
+syn keyword ngxDirective contained zone_sync_ssl
729
+syn keyword ngxDirective contained zone_sync_ssl_certificate
730
+syn keyword ngxDirective contained zone_sync_ssl_certificate_key
731
+syn keyword ngxDirective contained zone_sync_ssl_ciphers
732
+syn keyword ngxDirective contained zone_sync_ssl_crl
733
+syn keyword ngxDirective contained zone_sync_ssl_name
734
+syn keyword ngxDirective contained zone_sync_ssl_password_file
735
+syn keyword ngxDirective contained zone_sync_ssl_protocols
736
+syn keyword ngxDirective contained zone_sync_ssl_server_name
737
+syn keyword ngxDirective contained zone_sync_ssl_trusted_certificate
738
+syn keyword ngxDirective contained zone_sync_ssl_verify
739
+syn keyword ngxDirective contained zone_sync_ssl_verify_depth
740
+syn keyword ngxDirective contained zone_sync_timeout
704 741
 
705 742
 " 3rd party modules list taken from
706 743
 " https://github.com/freebsd/freebsd-ports/blob/master/www/nginx-devel/Makefile
@@ -876,6 +913,8 @@ syn keyword ngxDirectiveThirdParty contained more_set_input_headers
876 913
 
877 914
 " NGINX WebDAV missing commands support (PROPFIND & OPTIONS)
878 915
 " https://github.com/arut/nginx-dav-ext-module
916
+syn keyword ngxDirectiveThirdParty contained dav_ext_lock
917
+syn keyword ngxDirectiveThirdParty contained dav_ext_lock_zone
879 918
 syn keyword ngxDirectiveThirdParty contained dav_ext_methods
880 919
 
881 920
 " ngx_eval
@@ -895,6 +934,7 @@ syn keyword ngxDirectiveThirdParty contained fancyindex_directories_first
895 934
 syn keyword ngxDirectiveThirdParty contained fancyindex_exact_size
896 935
 syn keyword ngxDirectiveThirdParty contained fancyindex_footer
897 936
 syn keyword ngxDirectiveThirdParty contained fancyindex_header
937
+syn keyword ngxDirectiveThirdParty contained fancyindex_hide_parent_dir
898 938
 syn keyword ngxDirectiveThirdParty contained fancyindex_hide_symlinks
899 939
 syn keyword ngxDirectiveThirdParty contained fancyindex_ignore
900 940
 syn keyword ngxDirectiveThirdParty contained fancyindex_localtime
@@ -937,8 +977,17 @@ syn keyword ngxDirectiveThirdParty contained notice_type
937 977
 
938 978
 " nchan
939 979
 " https://github.com/slact/nchan
980
+syn keyword ngxDirectiveThirdParty contained nchan_access_control_allow_credentials
940 981
 syn keyword ngxDirectiveThirdParty contained nchan_access_control_allow_origin
941 982
 syn keyword ngxDirectiveThirdParty contained nchan_authorize_request
983
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark
984
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_channels
985
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_message_padding_bytes
986
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_messages_per_channel_per_minute
987
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_publisher_distribution
988
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_subscriber_distribution
989
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_subscribers_per_channel
990
+syn keyword ngxDirectiveThirdParty contained nchan_benchmark_time
942 991
 syn keyword ngxDirectiveThirdParty contained nchan_channel_event_string
943 992
 syn keyword ngxDirectiveThirdParty contained nchan_channel_events_channel_id
944 993
 syn keyword ngxDirectiveThirdParty contained nchan_channel_group
@@ -974,15 +1023,19 @@ syn keyword ngxDirectiveThirdParty contained nchan_publisher_upstream_request
974 1023
 syn keyword ngxDirectiveThirdParty contained nchan_pubsub
975 1024
 syn keyword ngxDirectiveThirdParty contained nchan_pubsub_channel_id
976 1025
 syn keyword ngxDirectiveThirdParty contained nchan_pubsub_location
1026
+syn keyword ngxDirectiveThirdParty contained nchan_redis_connect_timeout
977 1027
 syn keyword ngxDirectiveThirdParty contained nchan_redis_fakesub_timer_interval
978 1028
 syn keyword ngxDirectiveThirdParty contained nchan_redis_idle_channel_cache_timeout
979 1029
 syn keyword ngxDirectiveThirdParty contained nchan_redis_namespace
1030
+syn keyword ngxDirectiveThirdParty contained nchan_redis_nostore_fastpublish
1031
+syn keyword ngxDirectiveThirdParty contained nchan_redis_optimize_target
980 1032
 syn keyword ngxDirectiveThirdParty contained nchan_redis_pass
981 1033
 syn keyword ngxDirectiveThirdParty contained nchan_redis_pass_inheritable
982 1034
 syn keyword ngxDirectiveThirdParty contained nchan_redis_ping_interval
983 1035
 syn keyword ngxDirectiveThirdParty contained nchan_redis_publish_msgpacked_max_size
984 1036
 syn keyword ngxDirectiveThirdParty contained nchan_redis_server
985 1037
 syn keyword ngxDirectiveThirdParty contained nchan_redis_storage_mode
1038
+syn keyword ngxDirectiveThirdParty contained nchan_redis_subscribe_weights
986 1039
 syn keyword ngxDirectiveThirdParty contained nchan_redis_url
987 1040
 syn keyword ngxDirectiveThirdParty contained nchan_redis_wait_after_connecting
988 1041
 syn keyword ngxDirectiveThirdParty contained nchan_shared_memory_size
@@ -1280,6 +1333,7 @@ syn keyword ngxDirectiveThirdParty contained lua_package_cpath
1280 1333
 syn keyword ngxDirectiveThirdParty contained lua_package_path
1281 1334
 syn keyword ngxDirectiveThirdParty contained lua_regex_cache_max_entries
1282 1335
 syn keyword ngxDirectiveThirdParty contained lua_regex_match_limit
1336
+syn keyword ngxDirectiveThirdParty contained lua_sa_restart
1283 1337
 syn keyword ngxDirectiveThirdParty contained lua_shared_dict
1284 1338
 syn keyword ngxDirectiveThirdParty contained lua_socket_buffer_size
1285 1339
 syn keyword ngxDirectiveThirdParty contained lua_socket_connect_timeout
@@ -1355,9 +1409,15 @@ syn keyword ngxDirectiveThirdParty contained rules_enabled
1355 1409
 " https://www.phusionpassenger.com/library/config/nginx/reference/
1356 1410
 syn keyword ngxDirectiveThirdParty contained passenger_abort_on_startup_error
1357 1411
 syn keyword ngxDirectiveThirdParty contained passenger_abort_websockets_on_process_shutdown
1412
+syn keyword ngxDirectiveThirdParty contained passenger_admin_panel_auth_type
1413
+syn keyword ngxDirectiveThirdParty contained passenger_admin_panel_password
1414
+syn keyword ngxDirectiveThirdParty contained passenger_admin_panel_url
1415
+syn keyword ngxDirectiveThirdParty contained passenger_admin_panel_username
1416
+syn keyword ngxDirectiveThirdParty contained passenger_anonymous_telemetry_proxy
1358 1417
 syn keyword ngxDirectiveThirdParty contained passenger_app_env
1359 1418
 syn keyword ngxDirectiveThirdParty contained passenger_app_file_descriptor_ulimit
1360 1419
 syn keyword ngxDirectiveThirdParty contained passenger_app_group_name
1420
+syn keyword ngxDirectiveThirdParty contained passenger_app_log_file
1361 1421
 syn keyword ngxDirectiveThirdParty contained passenger_app_rights
1362 1422
 syn keyword ngxDirectiveThirdParty contained passenger_app_root
1363 1423
 syn keyword ngxDirectiveThirdParty contained passenger_app_type
@@ -1373,8 +1433,10 @@ syn keyword ngxDirectiveThirdParty contained passenger_data_buffer_dir
1373 1433
 syn keyword ngxDirectiveThirdParty contained passenger_debugger
1374 1434
 syn keyword ngxDirectiveThirdParty contained passenger_default_group
1375 1435
 syn keyword ngxDirectiveThirdParty contained passenger_default_user
1436
+syn keyword ngxDirectiveThirdParty contained passenger_disable_anonymous_telemetry
1376 1437
 syn keyword ngxDirectiveThirdParty contained passenger_disable_security_update_check
1377 1438
 syn keyword ngxDirectiveThirdParty contained passenger_document_root
1439
+syn keyword ngxDirectiveThirdParty contained passenger_dump_config_manifest
1378 1440
 syn keyword ngxDirectiveThirdParty contained passenger_enabled
1379 1441
 syn keyword ngxDirectiveThirdParty contained passenger_env_var
1380 1442
 syn keyword ngxDirectiveThirdParty contained passenger_file_descriptor_log_file
@@ -1402,6 +1464,7 @@ syn keyword ngxDirectiveThirdParty contained passenger_max_requests
1402 1464
 syn keyword ngxDirectiveThirdParty contained passenger_memory_limit
1403 1465
 syn keyword ngxDirectiveThirdParty contained passenger_meteor_app_settings
1404 1466
 syn keyword ngxDirectiveThirdParty contained passenger_min_instances
1467
+syn keyword ngxDirectiveThirdParty contained passenger_monitor_log_file
1405 1468
 syn keyword ngxDirectiveThirdParty contained passenger_nodejs
1406 1469
 syn keyword ngxDirectiveThirdParty contained passenger_pass_header
1407 1470
 syn keyword ngxDirectiveThirdParty contained passenger_pool_idle_time
@@ -1778,6 +1841,8 @@ syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter
1778 1841
 syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_by_host
1779 1842
 syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_by_set_key
1780 1843
 syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_check_duplicate
1844
+syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_filter_max_node
1845
+syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_histogram_buckets
1781 1846
 syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit
1782 1847
 syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit_check_duplicate
1783 1848
 syn keyword ngxDirectiveThirdParty contained vhost_traffic_status_limit_traffic
@@ -1899,11 +1964,11 @@ syn keyword ngxDirectiveThirdParty contained form_auth_remote_user
1899 1964
 
1900 1965
 " ngx_http_accounting_module
1901 1966
 " https://github.com/Lax/ngx_http_accounting_module
1902
-syn keyword ngxDirectiveThirdParty contained http_accounting
1903
-syn keyword ngxDirectiveThirdParty contained http_accounting_id
1904
-syn keyword ngxDirectiveThirdParty contained http_accounting_interval
1905
-syn keyword ngxDirectiveThirdParty contained http_accounting_log
1906
-syn keyword ngxDirectiveThirdParty contained http_accounting_perturb
1967
+syn keyword ngxDirectiveThirdParty contained accounting
1968
+syn keyword ngxDirectiveThirdParty contained accounting_id
1969
+syn keyword ngxDirectiveThirdParty contained accounting_interval
1970
+syn keyword ngxDirectiveThirdParty contained accounting_log
1971
+syn keyword ngxDirectiveThirdParty contained accounting_perturb
1907 1972
 
1908 1973
 " concatenating files in a given context: CSS and JS files usually
1909 1974
 " https://github.com/alibaba/nginx-http-concat

+ 76
- 0
docs/xml/nginx/changes.xml View File

@@ -5,6 +5,82 @@
5 5
 <change_log title="nginx">
6 6
 
7 7
 
8
+<changes ver="1.15.8" date="2018-12-25">
9
+
10
+<change type="feature">
11
+<para lang="ru">
12
+переменная $upstream_bytes_sent.<br/>
13
+Спасибо Piotr Sikora.
14
+</para>
15
+<para lang="en">
16
+the $upstream_bytes_sent variable.<br/>
17
+Thanks to Piotr Sikora.
18
+</para>
19
+</change>
20
+
21
+<change type="feature">
22
+<para lang="ru">
23
+новые директивы в скриптах подсветки синтаксиса для vim.<br/>
24
+Спасибо Геннадию Махомеду.
25
+</para>
26
+<para lang="en">
27
+new directives in vim syntax highlighting scripts.<br/>
28
+Thanks to Gena Makhomed.
29
+</para>
30
+</change>
31
+
32
+<change type="bugfix">
33
+<para lang="ru">
34
+в директиве proxy_cache_background_update.
35
+</para>
36
+<para lang="en">
37
+in the "proxy_cache_background_update" directive.
38
+</para>
39
+</change>
40
+
41
+<change type="bugfix">
42
+<para lang="ru">
43
+в директиве geo при использовании unix domain listen-сокетов.
44
+</para>
45
+<para lang="en">
46
+in the "geo" directive when using unix domain listen sockets.
47
+</para>
48
+</change>
49
+
50
+<change type="workaround">
51
+<para lang="ru">
52
+при использовании директивы ssl_early_data с OpenSSL
53
+в логах могли появляться сообщения
54
+"ignoring stale global SSL error ... bad length".
55
+</para>
56
+<para lang="en">
57
+the "ignoring stale global SSL error ... bad length"
58
+alerts might appear in logs
59
+when using the "ssl_early_data" directive with OpenSSL.
60
+</para>
61
+</change>
62
+
63
+<change type="bugfix">
64
+<para lang="ru">
65
+в nginx/Windows.
66
+</para>
67
+<para lang="en">
68
+in nginx/Windows.
69
+</para>
70
+</change>
71
+
72
+<change type="bugfix">
73
+<para lang="ru">
74
+в модуле ngx_http_autoindex_module на 32-битных платформах.
75
+</para>
76
+<para lang="en">
77
+in the ngx_http_autoindex_module on 32-bit platforms.
78
+</para>
79
+</change>
80
+
81
+</changes>
82
+
83
+
8 84
 <changes ver="1.15.7" date="2018-11-27">
9 85
 
10 86
 <change type="feature">

+ 2
- 2
src/core/nginx.h View File

@@ -9,8 +9,8 @@
9 9
 #define _NGINX_H_INCLUDED_
10 10
 
11 11
 
12
-#define nginx_version      1015008
13
-#define NGINX_VERSION      "1.15.8"
12
+#define nginx_version      1015009
13
+#define NGINX_VERSION      "1.15.9"
14 14
 #define NGINX_VER          "nginx/" NGINX_VERSION " by Hakase"
15 15
 
16 16
 #ifndef NGINX_SERVER

+ 2
- 2
src/core/ngx_file.c View File

@@ -1017,13 +1017,13 @@ ngx_walk_tree(ngx_tree_ctx_t *ctx, ngx_str_t *tree)
1017 1017
 
1018 1018
         file.len = tree->len + 1 + len;
1019 1019
 
1020
-        if (file.len + NGX_DIR_MASK_LEN > buf.len) {
1020
+        if (file.len > buf.len) {
1021 1021
 
1022 1022
             if (buf.len) {
1023 1023
                 ngx_free(buf.data);
1024 1024
             }
1025 1025
 
1026
-            buf.len = tree->len + 1 + len + NGX_DIR_MASK_LEN;
1026
+            buf.len = tree->len + 1 + len;
1027 1027
 
1028 1028
             buf.data = ngx_alloc(buf.len + 1, ctx->log);
1029 1029
             if (buf.data == NULL) {

+ 42
- 26
src/http/modules/ngx_http_autoindex_module.c View File

@@ -186,8 +186,6 @@ ngx_http_autoindex_handler(ngx_http_request_t *r)
186 186
         return rc;
187 187
     }
188 188
 
189
-    /* NGX_DIR_MASK_LEN is lesser than NGX_HTTP_AUTOINDEX_PREALLOCATE */
190
-
191 189
     last = ngx_http_map_uri_to_path(r, &path, &root,
192 190
                                     NGX_HTTP_AUTOINDEX_PREALLOCATE);
193 191
     if (last == NULL) {
@@ -436,7 +434,7 @@ ngx_http_autoindex_html(ngx_http_request_t *r, ngx_array_t *entries)
436 434
 {
437 435
     u_char                         *last, scale;
438 436
     off_t                           length;
439
-    size_t                          len, char_len, escape_html;
437
+    size_t                          len, entry_len, char_len, escape_html;
440 438
     ngx_tm_t                        tm;
441 439
     ngx_buf_t                      *b;
442 440
     ngx_int_t                       size;
@@ -501,17 +499,23 @@ ngx_http_autoindex_html(ngx_http_request_t *r, ngx_array_t *entries)
501 499
             entry[i].utf_len = entry[i].name.len;
502 500
         }
503 501
 
504
-        len += sizeof("<a href=\"") - 1
505
-            + entry[i].name.len + entry[i].escape
506
-            + 1                                          /* 1 is for "/" */
507
-            + sizeof("\">") - 1
508
-            + entry[i].name.len - entry[i].utf_len
509
-            + entry[i].escape_html
510
-            + NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof("&gt;") - 2
511
-            + sizeof("</a>") - 1
512
-            + sizeof(" 28-Sep-1970 12:00 ") - 1
513
-            + 20                                         /* the file size */
514
-            + 2;
502
+        entry_len = sizeof("<a href=\"") - 1
503
+                  + entry[i].name.len + entry[i].escape
504
+                  + 1                                    /* 1 is for "/" */
505
+                  + sizeof("\">") - 1
506
+                  + entry[i].name.len - entry[i].utf_len
507
+                  + entry[i].escape_html
508
+                  + NGX_HTTP_AUTOINDEX_NAME_LEN + sizeof("&gt;") - 2
509
+                  + sizeof("</a>") - 1
510
+                  + sizeof(" 28-Sep-1970 12:00 ") - 1
511
+                  + 20                                   /* the file size */
512
+                  + 2;
513
+
514
+        if (len > NGX_MAX_SIZE_T_VALUE - entry_len) {
515
+            return NULL;
516
+        }
517
+
518
+        len += entry_len;
515 519
     }
516 520
 
517 521
     b = ngx_create_temp_buf(r->pool, len);
@@ -699,7 +703,7 @@ static ngx_buf_t *
699 703
 ngx_http_autoindex_json(ngx_http_request_t *r, ngx_array_t *entries,
700 704
     ngx_str_t *callback)
701 705
 {
702
-    size_t                       len;
706
+    size_t                       len, entry_len;
703 707
     ngx_buf_t                   *b;
704 708
     ngx_uint_t                   i;
705 709
     ngx_http_autoindex_entry_t  *entry;
@@ -716,15 +720,21 @@ ngx_http_autoindex_json(ngx_http_request_t *r, ngx_array_t *entries,
716 720
         entry[i].escape = ngx_escape_json(NULL, entry[i].name.data,
717 721
                                           entry[i].name.len);
718 722
 
719
-        len += sizeof("{  }," CRLF) - 1
720
-            + sizeof("\"name\":\"\"") - 1
721
-            + entry[i].name.len + entry[i].escape
722
-            + sizeof(", \"type\":\"directory\"") - 1
723
-            + sizeof(", \"mtime\":\"Wed, 31 Dec 1986 10:00:00 GMT\"") - 1;
723
+        entry_len = sizeof("{  }," CRLF) - 1
724
+                  + sizeof("\"name\":\"\"") - 1
725
+                  + entry[i].name.len + entry[i].escape
726
+                  + sizeof(", \"type\":\"directory\"") - 1
727
+                  + sizeof(", \"mtime\":\"Wed, 31 Dec 1986 10:00:00 GMT\"") - 1;
724 728
 
725 729
         if (entry[i].file) {
726
-            len += sizeof(", \"size\":") - 1 + NGX_OFF_T_LEN;
730
+            entry_len += sizeof(", \"size\":") - 1 + NGX_OFF_T_LEN;
731
+        }
732
+
733
+        if (len > NGX_MAX_SIZE_T_VALUE - entry_len) {
734
+            return NULL;
727 735
         }
736
+
737
+        len += entry_len;
728 738
     }
729 739
 
730 740
     b = ngx_create_temp_buf(r->pool, len);
@@ -843,7 +853,7 @@ ngx_http_autoindex_jsonp_callback(ngx_http_request_t *r, ngx_str_t *callback)
843 853
 static ngx_buf_t *
844 854
 ngx_http_autoindex_xml(ngx_http_request_t *r, ngx_array_t *entries)
845 855
 {
846
-    size_t                          len;
856
+    size_t                          len, entry_len;
847 857
     ngx_tm_t                        tm;
848 858
     ngx_buf_t                      *b;
849 859
     ngx_str_t                       type;
@@ -861,13 +871,19 @@ ngx_http_autoindex_xml(ngx_http_request_t *r, ngx_array_t *entries)
861 871
         entry[i].escape = ngx_escape_html(NULL, entry[i].name.data,
862 872
                                           entry[i].name.len);
863 873
 
864
-        len += sizeof("<directory></directory>" CRLF) - 1
865
-            + entry[i].name.len + entry[i].escape
866
-            + sizeof(" mtime=\"1986-12-31T10:00:00Z\"") - 1;
874
+        entry_len = sizeof("<directory></directory>" CRLF) - 1
875
+                  + entry[i].name.len + entry[i].escape
876
+                  + sizeof(" mtime=\"1986-12-31T10:00:00Z\"") - 1;
867 877
 
868 878
         if (entry[i].file) {
869
-            len += sizeof(" size=\"\"") - 1 + NGX_OFF_T_LEN;
879
+            entry_len += sizeof(" size=\"\"") - 1 + NGX_OFF_T_LEN;
880
+        }
881
+
882
+        if (len > NGX_MAX_SIZE_T_VALUE - entry_len) {
883
+            return NULL;
870 884
         }
885
+
886
+        len += entry_len;
871 887
     }
872 888
 
873 889
     b = ngx_create_temp_buf(r->pool, len);

+ 1
- 1
src/http/modules/ngx_http_random_index_module.c View File

@@ -98,7 +98,7 @@ ngx_http_random_index_handler(ngx_http_request_t *r)
98 98
     }
99 99
 
100 100
 #if (NGX_HAVE_D_TYPE)
101
-    len = NGX_DIR_MASK_LEN;
101
+    len = 0;
102 102
 #else
103 103
     len = NGX_HTTP_RANDOM_INDEX_PREALLOCATE;
104 104
 #endif

+ 7
- 0
src/http/modules/ngx_http_userid_filter_module.c View File

@@ -545,6 +545,13 @@ ngx_http_userid_create_uid(ngx_http_request_t *r, ngx_http_userid_ctx_t *ctx,
545 545
 
546 546
                 break;
547 547
 #endif
548
+
549
+#if (NGX_HAVE_UNIX_DOMAIN)
550
+            case AF_UNIX:
551
+                ctx->uid_set[0] = 0;
552
+                break;
553
+#endif
554
+
548 555
             default: /* AF_INET */
549 556
                 sin = (struct sockaddr_in *) c->local_sockaddr;
550 557
                 ctx->uid_set[0] = sin->sin_addr.s_addr;

+ 0
- 3
src/os/unix/ngx_files.h View File

@@ -213,9 +213,6 @@ void ngx_close_file_mapping(ngx_file_mapping_t *fm);
213 213
 #endif
214 214
 
215 215
 
216
-#define NGX_DIR_MASK_LEN         0
217
-
218
-
219 216
 ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
220 217
 #define ngx_open_dir_n           "opendir()"
221 218
 

+ 18
- 3
src/os/win32/ngx_files.c View File

@@ -427,16 +427,31 @@ ngx_realpath(u_char *path, u_char *resolved)
427 427
 ngx_int_t
428 428
 ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir)
429 429
 {
430
-    ngx_cpystrn(name->data + name->len, NGX_DIR_MASK, NGX_DIR_MASK_LEN + 1);
430
+    u_char     *pattern, *p;
431
+    ngx_err_t   err;
432
+
433
+    pattern = malloc(name->len + 3);
434
+    if (pattern == NULL) {
435
+        return NGX_ERROR;
436
+    }
431 437
 
432
-    dir->dir = FindFirstFile((const char *) name->data, &dir->finddata);
438
+    p = ngx_cpymem(pattern, name->data, name->len);
433 439
 
434
-    name->data[name->len] = '\0';
440
+    *p++ = '/';
441
+    *p++ = '*';
442
+    *p = '\0';
443
+
444
+    dir->dir = FindFirstFile((const char *) pattern, &dir->finddata);
435 445
 
436 446
     if (dir->dir == INVALID_HANDLE_VALUE) {
447
+        err = ngx_errno;
448
+        ngx_free(pattern);
449
+        ngx_set_errno(err);
437 450
         return NGX_ERROR;
438 451
     }
439 452
 
453
+    ngx_free(pattern);
454
+
440 455
     dir->valid_info = 1;
441 456
     dir->ready = 1;
442 457
 

+ 0
- 3
src/os/win32/ngx_files.h View File

@@ -181,9 +181,6 @@ u_char *ngx_realpath(u_char *path, u_char *resolved);
181 181
 #define NGX_HAVE_MAX_PATH           1
182 182
 #define NGX_MAX_PATH                MAX_PATH
183 183
 
184
-#define NGX_DIR_MASK                (u_char *) "/*"
185
-#define NGX_DIR_MASK_LEN            2
186
-
187 184
 
188 185
 ngx_int_t ngx_open_dir(ngx_str_t *name, ngx_dir_t *dir);
189 186
 #define ngx_open_dir_n              "FindFirstFile()"

Loading…
Cancel
Save