Commit graph

423 commits

Author SHA1 Message Date
Igor Sysoev
112f4b1165 avoid endless loop if epoll is used 2008-02-19 16:30:54 +00:00
Igor Sysoev
cc76e9c91f reset ready flag if no data is available,
this fixes endless loop at least in lingering close
2008-01-31 15:36:33 +00:00
Igor Sysoev
db38365ab7 add NGX_ENETDOWN, NGX_ENETUNREACH, and NGX_EHOSTDOWN 2008-01-25 14:57:35 +00:00
Igor Sysoev
9b84b607d9 take MALLOC_OPTIONS=J into account in slab allocator 2007-12-22 11:06:53 +00:00
Igor Sysoev
1e973c6d87 move condition declarations inside blocks where they are used 2007-12-10 12:09:51 +00:00
Igor Sysoev
28bfe377e7 use malloc() in ngx_win32_rename_file, set crit level instead of error 2007-12-07 19:57:13 +00:00
Igor Sysoev
23338af6e1 ngx_udp_recv() 2007-12-03 16:46:46 +00:00
Igor Sysoev
6887ccefd2 style fix 2007-12-01 21:05:19 +00:00
Igor Sysoev
e87de6618d axe old unused alert message 2007-12-01 20:31:59 +00:00
Igor Sysoev
c02be5c16f style fix 2007-12-01 20:25:32 +00:00
Igor Sysoev
1d25090146 style fix: remove trailing spaces 2007-12-01 19:57:37 +00:00
Igor Sysoev
64b3e3f88e enable getenv() and gmtime() in msvc8 2007-11-15 14:34:10 +00:00
Igor Sysoev
e2035917ad fix win32 ngx_read_fd() and ngx_write_fd() 2007-11-11 19:56:46 +00:00
Igor Sysoev
b41a838b12 TransmitPackets(), ConnectEx(), and DisconnectEx() 2007-11-11 18:56:50 +00:00
Igor Sysoev
84c7b781d1 fix win32 glob 2007-11-11 17:50:47 +00:00
Igor Sysoev
13b4ba87e3 use uname(2) instead of /proc/, this allows to run nginx in chroot 2007-10-26 16:38:53 +00:00
Igor Sysoev
b3e07a9e02 Cygwin can not pass SCM_RIGHTS via unix socket, use signals 2007-10-18 11:28:21 +00:00
Igor Sysoev
144e68ff7c fix building broken in r1578 2007-10-16 19:22:27 +00:00
Igor Sysoev
b0751fde34 delete code that should be deleted in r1576 2007-10-16 17:51:47 +00:00
Igor Sysoev
81c25d266f Cygwin support 2007-10-16 14:14:30 +00:00
Igor Sysoev
d8e91f47be avoid segfault if poll is used and endless loop if select is used 2007-10-16 14:12:52 +00:00
Igor Sysoev
2e4e39296a fix English grammar 2007-10-14 18:56:15 +00:00
Igor Sysoev
b8baad1936 style fix: remove double semicolons 2007-10-09 20:11:03 +00:00
Igor Sysoev
8c1b31e32e destroy ngx_cycle->pool on exit 2007-08-30 18:59:44 +00:00
Igor Sysoev
8518844fba win32 ngx_is_exec() stub 2007-08-30 18:57:38 +00:00
Igor Sysoev
c2c3841c82 set worker_priority, worker_rlimit_nofile, worker_rlimit_core, and
worker_rlimit_sigpending without super-user privileges testing
2007-08-15 20:53:30 +00:00
Igor Sysoev
c5245bab92 set default listen() backlog to 511 on all platforms except FreeBSD 2007-08-09 13:32:21 +00:00
Igor Sysoev
5385801f35 make 64-bit ngx_int_t on 64-bit platforms 2007-07-29 18:24:53 +00:00
Igor Sysoev
00beec63d5 Sun Studio 12 compatibility 2007-07-16 08:54:04 +00:00
Igor Sysoev
a2f7a8ba87 --with-cpu-opt=sparc32 and --with-cpu-opt=sparc64 2007-07-15 20:09:14 +00:00
Igor Sysoev
e176c216e2 add debug log 2007-05-07 07:04:00 +00:00
Igor Sysoev
d4d5c5f1cd fix building by owc12 2007-05-05 05:50:41 +00:00
Igor Sysoev
c7ae03e5c7 fix atomic operations on sparc64 built by SunPro C 2007-04-27 14:36:28 +00:00
Igor Sysoev
92d32ca112 fix sendfile on 64-bit Linux and limit_rate on all 64-bit platforms
for 2G+ files
2007-04-23 21:32:13 +00:00
Igor Sysoev
d8385e558b close keep-alive connections in the shuting down processes 2007-03-19 13:20:15 +00:00
Igor Sysoev
fa14014f00 worker processes did not exit after reconfiguration and
did not rotate logs if eventport was used
2007-03-07 10:25:16 +00:00
Igor Sysoev
c3f512ca0c style fix 2007-03-06 20:29:08 +00:00
Igor Sysoev
324729aace style fix 2007-03-06 20:17:50 +00:00
Igor Sysoev
13397fc16e ioctl FIONBIO uses int, so nginx did not work on big-endian 64-bit platforms 2007-02-17 19:53:52 +00:00
Igor Sysoev
10af0f092a fix building with ngx_http_perl_module 2007-02-12 13:19:12 +00:00
Igor Sysoev
44779711de use ngx_dir_access() to enable search bits for directory 2007-01-29 12:25:44 +00:00
Igor Sysoev
3142a55af5 env 2007-01-20 19:26:48 +00:00
Igor Sysoev
886563bfd9 ngx_read_fd() 2007-01-18 20:39:30 +00:00
Igor Sysoev
cad434409d NGX_FILE_WRONLY 2007-01-18 20:37:19 +00:00
Igor Sysoev
ce83ea1a10 ngx_file_access() and ngx_de_access() 2007-01-18 20:31:22 +00:00
Igor Sysoev
5af15b2e67 style fix 2007-01-18 20:25:11 +00:00
Igor Sysoev
7262f047c7 axe Win9X code 2007-01-18 20:24:30 +00:00
Igor Sysoev
8577c16e42 add comment 2007-01-18 20:23:16 +00:00
Igor Sysoev
2ab4ef302a axe unused code 2007-01-18 20:22:40 +00:00
Igor Sysoev
0384d31723 ngx_open_file(name, access, create) > ngx_open_file(name, mode, create, access) 2007-01-18 20:15:09 +00:00
Igor Sysoev
9e66d69a5f style fix 2007-01-18 20:05:39 +00:00
Igor Sysoev
698028f2a0 rename mode to access 2007-01-18 19:52:18 +00:00
Igor Sysoev
ad13a152a8 style fix: remove tabs 2007-01-12 20:26:39 +00:00
Igor Sysoev
85e2674eb8 optimization 2007-01-11 16:07:38 +00:00
Igor Sysoev
ebbf35eab3 use "r" instead of "q" 2007-01-11 16:00:02 +00:00
Igor Sysoev
ca61b6709c increase Linux osrelease string lentgh 2006-12-26 11:50:56 +00:00
Igor Sysoev
aff04b4944 worker_rlimit_core supports size in K, M, and G 2006-12-24 18:13:06 +00:00
Igor Sysoev
eeba2a00d6 lower the log level of the waitpid() ENOCHILD error on FreeBSD 2006-12-23 15:05:26 +00:00
Igor Sysoev
ce561be352 test Darwin 8 atomic(3) 2006-12-22 12:54:08 +00:00
Igor Sysoev
eb4e54e202 use MacOSX atomic(3) and barrier(3) operations 2006-12-21 16:33:31 +00:00
Igor Sysoev
1ba2f8c241 use the right memory barriers 2006-12-21 15:47:00 +00:00
Igor Sysoev
c8affc0e0e larx/stcx. should cycle if the reservation was cleared 2006-12-21 15:20:15 +00:00
Igor Sysoev
ad0fdb6ccf use light-weight sync on ppc64 2006-12-19 15:23:20 +00:00
Igor Sysoev
db74d354e3 fix atomic operations on ppc64 2006-12-19 13:41:03 +00:00
Igor Sysoev
ab03650916 slab allocator in shared memory 2006-11-20 08:51:45 +00:00
Igor Sysoev
0ef60bfa88 APOP 2006-10-23 13:10:10 +00:00
Igor Sysoev
78ea95e55d win32 uint16_t definition 2006-10-16 13:59:37 +00:00
Igor Sysoev
9193c0de97 style fix: remove trailing spaces 2006-10-09 15:38:59 +00:00
Igor Sysoev
483c0d6a53 fix building on Linux and Solaris 2006-10-02 14:50:19 +00:00
Igor Sysoev
45b6186a39 glob support in include 2006-10-02 08:46:45 +00:00
Igor Sysoev
db988cca31 Solaris 10 event ports support 2006-09-26 12:20:12 +00:00
Igor Sysoev
e28d09ade0 fix comment 2006-09-22 12:19:02 +00:00
Igor Sysoev
31bec20421 fix typo 2006-09-16 07:12:13 +00:00
Igor Sysoev
fe926fd3f5 disable [ PAUSE ] hwcap for Sun Studio 11 2006-09-15 19:33:55 +00:00
Igor Sysoev
fec3babf6b fix header name change 2006-09-15 10:25:32 +00:00
Igor Sysoev
4093054706 backout O_NOATIME support, it requires CAP_FOWNER capability 2006-09-14 15:05:48 +00:00
Igor Sysoev
8ce000a6b9 workaround of 2G+ file bug in 64-bit Linux sendfile() 2006-09-07 18:56:45 +00:00
Igor Sysoev
eb29c3c8fc Linux O_NOATIME support 2006-09-01 05:15:56 +00:00
Igor Sysoev
a5719ead3e nginx-0.4.0-RELEASE import
*) Change in internal API: the HTTP modules initialization was moved
       from the init module phase to the HTTP postconfiguration phase.

    *) Change: now the request body is not read beforehand for the
       ngx_http_perl_module: it's required to start the reading using the
       $r->has_request_body method.

    *) Feature: the ngx_http_perl_module supports the DECLINED return code.

    *) Feature: the ngx_http_dav_module supports the incoming "Date" header
       line for the PUT method.

    *) Feature: the "ssi" directive is available inside the "if" block.

    *) Bugfix: a segmentation fault occurred if there was an "index"
       directive with variables and the first index name was without
       variables; the bug had appeared in 0.1.29.
2006-08-30 10:39:17 +00:00
Igor Sysoev
fb2d2aadb0 nginx-0.3.58-RELEASE import
*) Feature: the "error_page" directive supports the variables.

    *) Change: now the procfs interface instead of sysctl is used on Linux.

    *) Change: now the "Content-Type" header line is inherited from first
       response when the "X-Accel-Redirect" was used.

    *) Bugfix: the "error_page" directive did not redirect the 413 error.

    *) Bugfix: the trailing "?" did not remove old arguments if no new
       arguments were added to a rewritten URI.

    *) Bugfix: nginx could not run on 64-bit FreeBSD 7.0-CURRENT.
2006-08-14 15:09:38 +00:00
Igor Sysoev
f08b1910d9 nginx-0.3.56-RELEASE import
*) Feature: the "dav_access" directive.

    *) Feature: the "if" directive supports the "-d", "!-d", "-e", "!-e",
       "-x", and "!-x" operators.

    *) Bugfix: a segmentation fault occurred if a request returned a
       redirect and some sent to client header lines were logged in the
       access log.
2006-08-04 16:04:04 +00:00
Igor Sysoev
cf1e69ba43 nginx-0.3.53-RELEASE import
*) Change: the "add_header" directive adds the string to 204, 301, and
       302 responses.

    *) Feature: the "server" directive in the "upstream" context supports
       the "weight" parameter.

    *) Feature: the "server_name" directive supports the "*" wildcard.

    *) Feature: nginx supports the request body size more than 2G.

    *) Bugfix: if a client was successfully authorized using "satisfy_any
       on", then anyway the message "access forbidden by rule" was written
       in the log.

    *) Bugfix: the "PUT" method may erroneously not create a file and
       return the 409 code.

    *) Bugfix: if the IMAP/POP3 backend returned an error, then nginx
       continued proxying anyway.
2006-07-07 16:33:19 +00:00
Igor Sysoev
074cac4d6d nginx-0.3.44-RELEASE import
*) Feature: the "wait" parameter in the "include" SSI command.

    *) Feature: the Ukrainian and Byelorussian characters were added to
       koi-win conversion table.

    *) Bugfix: in the SSI.
2006-05-04 15:32:46 +00:00
Igor Sysoev
fe40b6455c nginx-0.3.41-RELEASE import
*) Feature: the -v switch.

    *) Bugfix: the segmentation fault may occurred if the SSI page has
       remote subrequests.

    *) Bugfix: in FastCGI handling.

    *) Bugfix: if the perl modules path was not set using
       --with-perl_modules_path=PATH or the "perl_modules", then the
       segmentation fault was occurred.
2006-04-21 12:06:44 +00:00
Igor Sysoev
c2af150027 nginx-0.3.40-RELEASE import
*) Feature: the ngx_http_dav_module supports the MKCOL method.

    *) Feature: the "create_full_put_path" directive.

    *) Feature: the "$limit_rate" variable.
2006-04-19 15:30:56 +00:00
Igor Sysoev
b9bf2e330d nginx-0.3.38-RELEASE import
*) Feature: the ngx_http_dav_module.

    *) Change: the ngx_http_perl_module optimizations.
       Thanks to Sergey Skvortsov.

    *) Feature: the ngx_http_perl_module supports the $r->request_body_file
       method.

    *) Feature: the "client_body_in_file_only" directive.

    *) Workaround: now on disk overflow nginx tries to write access logs
       once a second only.
       Thanks to Anton Yuzhaninov and Maxim Dounin.

    *) Bugfix: now the "limit_rate" directive more precisely limits rate if
       rate is more than 100 Kbyte/s.
       Thanks to ForJest.

    *) Bugfix: now the IMAP/POP3 proxy escapes the "\r" and "\n" symbols in
       login and password to pass authorization server.
       Thanks to Maxim Dounin.
2006-04-14 09:53:38 +00:00
Igor Sysoev
9873078d0c nginx-0.3.35-RELEASE import
*) Bugfix: the accept-filter and the TCP_DEFER_ACCEPT option were set
       for first "listen" directive only; the bug had appeared in 0.3.31.

    *) Bugfix: in the "proxy_pass" directive without the URI part in a
       subrequest.
2006-03-28 12:24:47 +00:00
Igor Sysoev
47f3076bd6 nginx-0.3.28-RELEASE import
*) Feature: the "restrict_host_names" directive was canceled.

    *) Feature: the --with-cpu-opt=ppc64 configuration parameter.

    *) Bugfix: on some condition the proxied connection with a client was
       terminated prematurely.
       Thanks to Vladimir Shutoff.

    *) Bugfix: the "X-Accel-Limit-Rate" header line was not taken into
       account if the request was redirected using the "X-Accel-Redirect"
       header line.

    *) Bugfix: the "post_action" directive ran only after a successful
       completion of a request.

    *) Bugfix: the proxied response body generated by the "post_action"
       directive was transferred to a client.
2006-02-16 15:26:46 +00:00
Igor Sysoev
79e64b1233 nginx-0.3.27-RELEASE import
*) Change: the "variables_hash_max_size" and
       "variables_hash_bucket_size" directives.

    *) Feature: the $body_bytes_sent variable can be used not only in the
       "log_format" directive.

    *) Feature: the $ssl_protocol and $ssl_cipher variables.

    *) Feature: the cache line size detection for widespread CPUs at start
       time.

    *) Feature: now the "accept_mutex" directive is supported using
       fcntl(2) on platforms different from i386, amd64, sparc64, and ppc.

    *) Feature: the "lock_file" directive and the --with-lock-path=PATH
       autoconfiguration directive.

    *) Bugfix: if the HTTPS protocol was used in the "proxy_pass" directive
       then the requests with the body was not transferred.
2006-02-08 15:33:12 +00:00
Igor Sysoev
a74a413027 nginx-0.3.26-RELEASE import
*) Change: the "optimize_host_names" directive was renamed to the
       "optimize_server_names".

    *) Bugfix: if in the "proxy_pass" directive was no the URI part, then
       the main request URI was transferred to a backend while proxying the
       SSI subrequest.
2006-02-03 12:58:48 +00:00
Igor Sysoev
4040634818 nginx-0.3.24-RELEASE import
*) Workaround: for bug in FreeBSD kqueue.

    *) Bugfix: now a response generated by the "post_action" directive is
       not transferred to a client.

    *) Bugfix: the memory leaks were occurring if many log files were used.

    *) Bugfix: the first "proxy_redirect" directive was working inside one
       location.

    *) Bugfix: on 64-bit platforms segmentation fault may occurred on start
       if the many names were used in the "server_name" directives; the bug
       had appeared in 0.3.18.
2006-02-01 18:22:15 +00:00
Igor Sysoev
4bcaae3ca6 nginx-0.3.22-RELEASE import
*) Feature: the ngx_http_perl_module supports the $r->args and
       $r->unescape methods.

    *) Feature: the method $r->query_string of ngx_http_perl_module was
       canceled.

    *) Bugfix: segmentation fault was occurred if the "none" or "blocked"
       values was specified in the "valid_referers" directive; the bug had
       appeared in 0.3.18.
2006-01-17 20:04:32 +00:00
Igor Sysoev
1088523c6b nginx-0.3.20-RELEASE import
*) Bugfix: in SSI handling.

    *) Bugfix: the ngx_http_memcached_module did not support the keys in
       the "/usr?args" form.
2006-01-11 15:26:57 +00:00
Igor Sysoev
08e6bae5c8 nginx-0.3.16-RELEASE import
*) Feature: the ngx_http_map_module.

    *) Feature: the "types_hash_max_size" and "types_hash_bucket_size"
       directives.

    *) Feature: the "ssi_value_length" directive.

    *) Feature: the "worker_rlimit_core" directive.

    *) Workaround: the connection number in logs was always 1 if nginx was
       built by the icc 8.1 or 9.0 compilers with optimization for
       Pentium 4.

    *) Bugfix: the "config timefmt" SSI command set incorrect time format.

    *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the
       SSL connections; the bug had appeared in 0.3.13.
       Thanks to Rob Mueller.

    *) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug
       had appeared in 0.3.13.
2005-12-16 15:07:08 +00:00
Igor Sysoev
a78da273da nginx-0.3.15-RELEASE import
*) Feature: the new 444 code of the "return" directive to close
       connection.

    *) Feature: the "so_keepalive" directive in IMAP/POP3 proxy.

    *) Bugfix: if there are unclosed connection nginx now calls abort()
       only on gracefull quit and active "debug_points" directive.
2005-12-07 14:51:31 +00:00
Igor Sysoev
23aa8920ca nginx-0.3.14-RELEASE import
*) Bugfix: in the 304 response the body was transferred; the bug had
       appeared in 0.3.13.
2005-12-05 16:59:05 +00:00
Igor Sysoev
1f1153d5cc nginx-0.3.13-RELEASE import
*) Feature: the IMAP/POP3 proxy supports STARTTLS and STLS.

    *) Bugfix: the IMAP/POP3 proxy did not work with the select, poll, and
       /dev/poll methods.

    *) Bugfix: in SSI handling.

    *) Bugfix: now Solaris sendfilev() is not used to transfer the client
       request body to FastCGI-server via the unix domain socket.

    *) Bugfix: the "auth_basic" directive did not disable the
       authorization; the bug had appeared in 0.3.11.
2005-12-05 13:18:09 +00:00
Igor Sysoev
0d005976e1 nginx-0.3.12-RELEASE import
*) Security: if nginx was built with the ngx_http_realip_module and the
       "satisfy_any on" directive was used, then access and authorization
       directives did not work. The ngx_http_realip_module was not built
       and is not built by default.

    *) Change: the "$time_gmt" variable name was changed to "$time_local".

    *) Change: the "proxy_header_buffer_size" and
       "fastcgi_header_buffer_size" directives was renamed to the
       "proxy_buffer_size" and "fastcgi_buffer_size" directives.

    *) Feature: the ngx_http_memcached_module.

    *) Feature: the "proxy_buffering" directive.

    *) Bugfix: the changes in accept mutex handling when the "rtsig" method
       was used; the bug had appeared in 0.3.0.

    *) Bugfix: if the client sent the "Transfer-Encoding: chunked" header
       line, then nginx returns the 411 error.

    *) Bugfix: if the "auth_basic" directive was inherited from the http
       level, then the realm in the "WWW-Authenticate" header line was
       without the "Basic realm" text.

    *) Bugfix: if the "combined" format was explicitly specified in the
       "access_log" directive, then the empty lines was written to the log;
       the bug had appeared in 0.3.8.

    *) Bugfix: nginx did not run on the sparc platform under any OS except
       Solaris.

    *) Bugfix: now it is not necessary to place space between the quoted
       string and closing bracket in the "if" directive.
2005-11-26 10:11:11 +00:00
Igor Sysoev
50476beb66 nginx-0.3.10-RELEASE import
*) Change: the "valid_referers" directive and the "$invalid_referer"
       variable were moved to the new ngx_http_referer_module from the
       ngx_http_rewrite_module.

    *) Change: the "$apache_bytes_sent" variable name was changed to
       "$body_bytes_sent".

    *) Feature: the "$sent_http_..." variables.

    *) Feature: the "if" directive supports the "=" and "!=" operations.

    *) Feature: the "proxy_pass" directive supports the HTTPS protocol.

    *) Feature: the "proxy_set_body" directive.

    *) Feature: the "post_action" directive.

    *) Feature: the ngx_http_empty_gif_module.

    *) Feature: the "worker_cpu_affinity" directive for Linux.

    *) Bugfix: the "rewrite" directive did not unescape URI part in
       redirect, now it is unescaped except the %00-%25 and %7F-%FF
       characters.

    *) Bugfix: nginx could not be built by the icc 9.0 compiler.

    *) Bugfix: if the SSI was enabled for zero size static file, then the
       chunked response was encoded incorrectly.
2005-11-15 13:30:52 +00:00
Igor Sysoev
276e06a14c nginx-0.3.8-RELEASE import
*) Security: nginx now checks URI got from a backend in
       "X-Accel-Redirect" header line or in SSI file for the "/../" paths
       and zeroes.

    *) Change: nginx now does not treat the empty user name in the
       "Authorization" header line as valid one.

    *) Feature: the "ssl_session_timeout" directives of the
       ngx_http_ssl_module and ngx_imap_ssl_module.

    *) Feature: the "auth_http_header" directive of the
       ngx_imap_auth_http_module.

    *) Feature: the "add_header" directive.

    *) Feature: the ngx_http_realip_module.

    *) Feature: the new variables to use in the "log_format" directive:
       $bytes_sent, $apache_bytes_sent, $status, $time_gmt, $uri,
       $request_time, $request_length, $upstream_status,
       $upstream_response_time, $gzip_ratio, $uid_got, $uid_set,
       $connection, $pipe, and $msec. The parameters in the "%name" form
       will be canceled soon.

    *) Change: now the false variable values in the "if" directive are the
       empty string "" and string starting with "0".

    *) Bugfix: while using proxied or FastCGI-server nginx may leave
       connections and temporary files with client requests in open state.

    *) Bugfix: the worker processes did not flush the buffered logs on
       graceful exit.

    *) Bugfix: if the request URI was changes by the "rewrite" directive
       and the request was proxied in location given by regular expression,
       then the incorrect request was transferred to backend; the bug had
       appeared in 0.2.6.

    *) Bugfix: the "expires" directive did not remove the previous
       "Expires" header.

    *) Bugfix: nginx may stop to accept requests if the "rtsig" method and
       several worker processes were used.

    *) Bugfix: the "\"" and "\'" escape symbols were incorrectly handled in
       SSI commands.

    *) Bugfix: if the response was ended just after the SSI command and
       gzipping was used, then the response did not transferred complete or
       did not transferred at all.
2005-11-09 17:25:55 +00:00