<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/os, branch release-0.7.67</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>merge r3615:</title>
<updated>2010-06-15T09:51:58+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-06-15T09:51:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=56920705470f69442c6b0db6c3e027bd8a22ddcd'/>
<id>56920705470f69442c6b0db6c3e027bd8a22ddcd</id>
<content type='text'>
do not free() stack allocated buffer
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
do not free() stack allocated buffer
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3502:</title>
<updated>2010-06-07T12:17:10+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-06-07T12:17:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=99b468d6bde64f7691fc47c5bb343827f2d0ce3e'/>
<id>99b468d6bde64f7691fc47c5bb343827f2d0ce3e</id>
<content type='text'>
use lstat() for WebDAV DELETE, COPY, and MOVE to handle symlinks
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
use lstat() for WebDAV DELETE, COPY, and MOVE to handle symlinks
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3498, r3499:</title>
<updated>2010-06-07T12:08:44+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-06-07T12:08:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=9d4085af44e8eb9c18dbaa017b6deb2bb11644a2'/>
<id>9d4085af44e8eb9c18dbaa017b6deb2bb11644a2</id>
<content type='text'>
opening files fixes:

*) use non-blocking open() not to hang on FIFO files, etc.
*) do not log misleading errno in "not a regular file" error
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
opening files fixes:

*) use non-blocking open() not to hang on FIFO files, etc.
*) do not log misleading errno in "not a regular file" error
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3473, r3474, r3385, r3386, r3537:</title>
<updated>2010-06-07T10:35:08+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-06-07T10:35:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=e66eb15b7be2534c9405900eb7350b538a146905'/>
<id>e66eb15b7be2534c9405900eb7350b538a146905</id>
<content type='text'>
signal processing stability:

*) use sys_errlist[] in signal handler instead
   of non Async-Signal-Safe strerror_r()
*) do not update time in the timer signal handler,
   since localtime_r() is not Async-Signal-Safe function
*) use previously cached GMT offset value to update time from a signal handler
*) change ngx_time_update() interface since there are no notification methods
   those return time
*) introduce ngx_time_sigsafe_update() to update the error log time only
*) change ngx_time_update() interface
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
signal processing stability:

*) use sys_errlist[] in signal handler instead
   of non Async-Signal-Safe strerror_r()
*) do not update time in the timer signal handler,
   since localtime_r() is not Async-Signal-Safe function
*) use previously cached GMT offset value to update time from a signal handler
*) change ngx_time_update() interface since there are no notification methods
   those return time
*) introduce ngx_time_sigsafe_update() to update the error log time only
*) change ngx_time_update() interface
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3459, r3571:</title>
<updated>2010-06-07T10:14:11+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-06-07T10:14:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=98e044cd86c9b4c6c4eaa0ca8008832d1dcc9726'/>
<id>98e044cd86c9b4c6c4eaa0ca8008832d1dcc9726</id>
<content type='text'>
Win32 fixes:

*) compare long file names in case-insensitive mode,
   the bug had been introduced in r3436
*) test default NTFS stream "::$DATA"
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Win32 fixes:

*) compare long file names in case-insensitive mode,
   the bug had been introduced in r3436
*) test default NTFS stream "::$DATA"
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3294, r3305:</title>
<updated>2010-02-01T15:49:36+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-02-01T15:49:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=c419414db440c298006d814936de28964d654b38'/>
<id>c419414db440c298006d814936de28964d654b38</id>
<content type='text'>
Fix a bug introduced in r2032: After a child process has read a terminate
message from a channel, the process tries to read the channel again.
The kernel (at least FreeBSD) may preempt the process and sends a SIGIO
signal to a master process. The master process sends a new terminate message,
the kernel switches again to the the child process, and the child process
reads the messages instead of an EAGAIN error. And this may repeat over
and over. Being that the child process can not exit the cycle and test
the termination flag set by the message handler.

The fix disallow the master process to send a new terminate message on
SIGIO signal reception. It may send the message only on SIGALARM signal.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix a bug introduced in r2032: After a child process has read a terminate
message from a channel, the process tries to read the channel again.
The kernel (at least FreeBSD) may preempt the process and sends a SIGIO
signal to a master process. The master process sends a new terminate message,
the kernel switches again to the the child process, and the child process
reads the messages instead of an EAGAIN error. And this may repeat over
and over. Being that the child process can not exit the cycle and test
the termination flag set by the message handler.

The fix disallow the master process to send a new terminate message on
SIGIO signal reception. It may send the message only on SIGALARM signal.
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3137, r3198, r3199, r3353, r3370, r3371, r3398, r3399:</title>
<updated>2010-02-01T15:46:14+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-02-01T15:46:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=95a5ecb1ac78b14b759ada666b2114783fc1c2d2'/>
<id>95a5ecb1ac78b14b759ada666b2114783fc1c2d2</id>
<content type='text'>
cache related fixes:

*) do not pass buf with empty cached response,
   this fixes "zero size buf in output" alert
*) hide cacheable Set-Cookie and P3P FastCGI response headers
*) test comma separator in "Cache-Control"
*) a cache manager thread handle was overwritten by a cache loader thread
   handle, this caused an exit delay, the bug had been introduced in r3248
*) fix handling cached HTTP/0.9 response
*) log proxied HTTP/0.9 responses status as "009"
*) fix the "If-None-Match" header name
*) fix a cached zero-length body case
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cache related fixes:

*) do not pass buf with empty cached response,
   this fixes "zero size buf in output" alert
*) hide cacheable Set-Cookie and P3P FastCGI response headers
*) test comma separator in "Cache-Control"
*) a cache manager thread handle was overwritten by a cache loader thread
   handle, this caused an exit delay, the bug had been introduced in r3248
*) fix handling cached HTTP/0.9 response
*) log proxied HTTP/0.9 responses status as "009"
*) fix the "If-None-Match" header name
*) fix a cached zero-length body case
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3286:</title>
<updated>2010-02-01T15:32:57+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-02-01T15:32:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=848cc35a653e893add69b580c864d0cd8b419860'/>
<id>848cc35a653e893add69b580c864d0cd8b419860</id>
<content type='text'>
use setproctitle("%s", title)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
use setproctitle("%s", title)
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3282:</title>
<updated>2010-02-01T15:17:12+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-02-01T15:17:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=94558617d1815e93b772d45627f7cdc142bf3f1b'/>
<id>94558617d1815e93b772d45627f7cdc142bf3f1b</id>
<content type='text'>
fix "if (!-x ...)"
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fix "if (!-x ...)"
</pre>
</div>
</content>
</entry>
<entry>
<title>merge r3138, r3139, r3157, r3158, r3159, r3164, r3165,</title>
<updated>2010-02-01T15:06:25+00:00</updated>
<author>
<name>Igor Sysoev</name>
<email>igor@sysoev.ru</email>
</author>
<published>2010-02-01T15:06:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=208bda2807116263017f848d9c1cc8e380fd6323'/>
<id>208bda2807116263017f848d9c1cc8e380fd6323</id>
<content type='text'>
      r3202, r3203, r3383, r3388, r3417, r3418:

Win32 (mostly) and some Unix file related fixes:

*) preserve errno while ngx_free()
*) win32 ngx_file_info() utf8 support
*) delete Win95 code
*) log file name for read/write errors
*) test incomplete WriteFile()
*) handle short pwrite() to log an error cause: ENOSPC, EDQUOT, or EFBIG
*) uniform ngx_directio_on/off() interface with other file functions
*) do not create Win32 drive letter in ngx_create_full_path()
*) ignore EACCES errors for top level directories in ngx_create_full_path()
*) fix Win32 error messages when an temporary file replaces an existent file:
   *) do not rename an already renamed file
   *) now ngx_win32_rename_file() returns error code
   *) do not log failure inside ngx_win32_rename_file()
*) fix Win32 error message when an temporary file replaces an existent file:
   return at once if ngx_win32_rename_file() was not failed
   and do not try to delete already the renamed temporary file
*) skip URI trailing spaces under Win32
*) disable Win32 short file names
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
      r3202, r3203, r3383, r3388, r3417, r3418:

Win32 (mostly) and some Unix file related fixes:

*) preserve errno while ngx_free()
*) win32 ngx_file_info() utf8 support
*) delete Win95 code
*) log file name for read/write errors
*) test incomplete WriteFile()
*) handle short pwrite() to log an error cause: ENOSPC, EDQUOT, or EFBIG
*) uniform ngx_directio_on/off() interface with other file functions
*) do not create Win32 drive letter in ngx_create_full_path()
*) ignore EACCES errors for top level directories in ngx_create_full_path()
*) fix Win32 error messages when an temporary file replaces an existent file:
   *) do not rename an already renamed file
   *) now ngx_win32_rename_file() returns error code
   *) do not log failure inside ngx_win32_rename_file()
*) fix Win32 error message when an temporary file replaces an existent file:
   return at once if ngx_win32_rename_file() was not failed
   and do not try to delete already the renamed temporary file
*) skip URI trailing spaces under Win32
*) disable Win32 short file names
</pre>
</div>
</content>
</entry>
</feed>
