<feed xmlns='http://www.w3.org/2005/Atom'>
<title>nginx.git/src/os/unix, branch release-1.5.5</title>
<subtitle>nginx</subtitle>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/'/>
<entry>
<title>Fixed handling of the ready flag with kqueue.</title>
<updated>2013-09-05T12:53:02+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2013-09-05T12:53:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=cf08ba72dba20f49ef71ce394511734f5eddbd61'/>
<id>cf08ba72dba20f49ef71ce394511734f5eddbd61</id>
<content type='text'>
There is nothing to do more when recv() has returned 0,
so we should drop the flag.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is nothing to do more when recv() has returned 0,
so we should drop the flag.
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable symlinks: use O_PATH to open path components.</title>
<updated>2013-09-02T04:07:59+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2013-09-02T04:07:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=7b373841407b198759276242ab2dc4e5f78adb21'/>
<id>7b373841407b198759276242ab2dc4e5f78adb21</id>
<content type='text'>
It was introduced in Linux 2.6.39, glibc 2.14 and allows to obtain
file descriptors without actually opening files.  Thus made it possible
to traverse path with openat() syscalls without the need to have read
permissions for path components.  It is effectively emulates O_SEARCH
which is missing on Linux.

O_PATH is used in combination with O_RDONLY.  The last one is ignored
if O_PATH is used, but it allows nginx to not fail when it was built on
modern system (i.e. glibc 2.14+) and run with a kernel older than 2.6.39.
Then O_PATH is unknown to the kernel and ignored, while O_RDONLY is used.

Sadly, fstat() is not working with O_PATH descriptors till Linux 3.6.
As a workaround we fallback to fstatat() with the AT_EMPTY_PATH flag
that was introduced at the same time as O_PATH.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was introduced in Linux 2.6.39, glibc 2.14 and allows to obtain
file descriptors without actually opening files.  Thus made it possible
to traverse path with openat() syscalls without the need to have read
permissions for path components.  It is effectively emulates O_SEARCH
which is missing on Linux.

O_PATH is used in combination with O_RDONLY.  The last one is ignored
if O_PATH is used, but it allows nginx to not fail when it was built on
modern system (i.e. glibc 2.14+) and run with a kernel older than 2.6.39.
Then O_PATH is unknown to the kernel and ignored, while O_RDONLY is used.

Sadly, fstat() is not working with O_PATH descriptors till Linux 3.6.
As a workaround we fallback to fstatat() with the AT_EMPTY_PATH flag
that was introduced at the same time as O_PATH.
</pre>
</div>
</content>
</entry>
<entry>
<title>Added the NGX_EBADF define.</title>
<updated>2013-09-02T04:07:44+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2013-09-02T04:07:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=231ed198e11efc5bf39bf2d02ddb1756a8ee2eec'/>
<id>231ed198e11efc5bf39bf2d02ddb1756a8ee2eec</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Autoindex: improved ngx_de_info() error handling.</title>
<updated>2013-07-30T07:43:21+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2013-07-30T07:43:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=2b2def789199b1fc661fbac38ff6bf7fdccb7bbb'/>
<id>2b2def789199b1fc661fbac38ff6bf7fdccb7bbb</id>
<content type='text'>
This allows to build a directory listing whenever a loop exists in symbolic
link resolution of the path argument.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows to build a directory listing whenever a loop exists in symbolic
link resolution of the path argument.
</pre>
</div>
</content>
</entry>
<entry>
<title>Format specifier fixes in error logging.</title>
<updated>2013-08-20T16:47:16+00:00</updated>
<author>
<name>Sergey Kandaurov</name>
<email>pluknet@nginx.com</email>
</author>
<published>2013-08-20T16:47:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=e09741ba06fd4870d90be6df7c59cd4e6da8a8b0'/>
<id>e09741ba06fd4870d90be6df7c59cd4e6da8a8b0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Unbreak building on Linux without sendfile64() support.</title>
<updated>2013-08-15T15:14:33+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2013-08-15T15:14:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=ef76fbebd6dc0b05a12ff3c19b70ab0ec9c118df'/>
<id>ef76fbebd6dc0b05a12ff3c19b70ab0ec9c118df</id>
<content type='text'>
It was broken in 8e446a2daf48 when the NGX_SENDFILE_LIMIT constant was added
to ngx_linux_sendfile_chain.c having the same name as already defined one in
ngx_linux_config.h.

The newer is needed to overcome a bug in old Linux kernels by limiting the
number of bytes to send per sendfile() syscall.  The older is used with
sendfile() on ancient kernels that works with 32-bit offsets only.

One of these renamed to NGX_SENDFILE_MAXSIZE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It was broken in 8e446a2daf48 when the NGX_SENDFILE_LIMIT constant was added
to ngx_linux_sendfile_chain.c having the same name as already defined one in
ngx_linux_config.h.

The newer is needed to overcome a bug in old Linux kernels by limiting the
number of bytes to send per sendfile() syscall.  The older is used with
sendfile() on ancient kernels that works with 32-bit offsets only.

One of these renamed to NGX_SENDFILE_MAXSIZE.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't lose pointer to first nonempty buf in ngx_*_sendfile_chain().</title>
<updated>2013-08-08T11:06:39+00:00</updated>
<author>
<name>Gleb Smirnoff</name>
<email>glebius@nginx.com</email>
</author>
<published>2013-08-08T11:06:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=65e37b4a128e5c4fe88721c790fd6f5c13102a62'/>
<id>65e37b4a128e5c4fe88721c790fd6f5c13102a62</id>
<content type='text'>
In ngx_*_sendfile_chain() when calculating pointer to a first
non-zero sized buf, use "in" as iterator.  This fixes processing
of zero sized buf(s) after EINTR.  Otherwise function can return
zero sized buf to caller, and later ngx_http_write_filter()
logs warning.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In ngx_*_sendfile_chain() when calculating pointer to a first
non-zero sized buf, use "in" as iterator.  This fixes processing
of zero sized buf(s) after EINTR.  Otherwise function can return
zero sized buf to caller, and later ngx_http_write_filter()
logs warning.
</pre>
</div>
</content>
</entry>
<entry>
<title>On DragonFlyBSD, TCP_KEEPIDLE and TCP_KEEPINTVL are in msecs.</title>
<updated>2013-07-25T08:46:03+00:00</updated>
<author>
<name>Ruslan Ermilov</name>
<email>ru@nginx.com</email>
</author>
<published>2013-07-25T08:46:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=02a077b827438ae17c638efed70ee1804ce7d898'/>
<id>02a077b827438ae17c638efed70ee1804ce7d898</id>
<content type='text'>
Based on a patch by Sepherosa Ziehau.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on a patch by Sepherosa Ziehau.
</pre>
</div>
</content>
</entry>
<entry>
<title>Events: honor NGX_USE_GREEDY_EVENT when kqueue support is enabled.</title>
<updated>2013-07-12T23:24:30+00:00</updated>
<author>
<name>Valentin Bartenev</name>
<email>vbart@nginx.com</email>
</author>
<published>2013-07-12T23:24:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=615d55884376040fc2b42d9f47f981cd700b384a'/>
<id>615d55884376040fc2b42d9f47f981cd700b384a</id>
<content type='text'>
Currently this flag is needed for epoll and rtsig, and though these methods
usually present on different platforms than kqueue, nginx can be compiled to
support all of them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently this flag is needed for epoll and rtsig, and though these methods
usually present on different platforms than kqueue, nginx can be compiled to
support all of them.
</pre>
</div>
</content>
</entry>
<entry>
<title>Style.</title>
<updated>2013-07-11T16:38:27+00:00</updated>
<author>
<name>Maxim Dounin</name>
<email>mdounin@mdounin.ru</email>
</author>
<published>2013-07-11T16:38:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.sigsegv.uk/nginx.git/commit/?id=d10251030ae4553e5f5338b267750f63cd05d1b3'/>
<id>d10251030ae4553e5f5338b267750f63cd05d1b3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
