<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/network, branch v1.1.3</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>add routing protocols to getprotoent-family functions</title>
<updated>2014-06-24T21:39:31+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2014-06-24T10:06:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=5abfd55d6e4845413eced358099488273adbcb9f'/>
<id>5abfd55d6e4845413eced358099488273adbcb9f</id>
<content type='text'>
iptables and quagga need them to work.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
iptables and quagga need them to work.
</pre>
</div>
</content>
</entry>
<entry>
<title>implement result address sorting in the resolver (getaddrinfo, etc.)</title>
<updated>2014-06-21T23:21:05+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2014-06-21T23:21:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=3c42605a603485df60ed42792c3d3113a4c47a90'/>
<id>3c42605a603485df60ed42792c3d3113a4c47a90</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix gethostby*_r result pointer value on error</title>
<updated>2014-06-20T13:17:57+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2014-06-20T10:53:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=fe82bb9b921be34370e6b71a1c6f062c20999ae0'/>
<id>fe82bb9b921be34370e6b71a1c6f062c20999ae0</id>
<content type='text'>
according to the documentation in the man pages, the GNU extension
functions gethostbyaddr_r, gethostbyname_r and gethostbyname2_r are
guaranteed to set the result pointer to NULL in case of error or no
result.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
according to the documentation in the man pages, the GNU extension
functions gethostbyaddr_r, gethostbyname_r and gethostbyname2_r are
guaranteed to set the result pointer to NULL in case of error or no
result.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix sendmmsg emulation return value for zero-length vector</title>
<updated>2014-06-20T06:13:38+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2014-06-20T06:13:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=2e5d256984adb6864ece82fb689ddb2b20e10e4d'/>
<id>2e5d256984adb6864ece82fb689ddb2b20e10e4d</id>
<content type='text'>
this case is not even documented, but the kernel returns 0 here and it
makes sense to be consistent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this case is not even documented, but the kernel returns 0 here and it
makes sense to be consistent.
</pre>
</div>
</content>
</entry>
<entry>
<title>implement sendmmsg and recvmmsg</title>
<updated>2014-06-20T03:01:15+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2014-06-20T03:01:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=acb7e049b8c70b9e6ad57e8601373f9c991a0da4'/>
<id>acb7e049b8c70b9e6ad57e8601373f9c991a0da4</id>
<content type='text'>
these are not pure syscall wrappers because they have to work around
kernel API bugs on 64-bit archs. the workarounds could probably be
made somewhat more efficient, but at the cost of more complexity. this
may be revisited later.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
these are not pure syscall wrappers because they have to work around
kernel API bugs on 64-bit archs. the workarounds could probably be
made somewhat more efficient, but at the cost of more complexity. this
may be revisited later.
</pre>
</div>
</content>
</entry>
<entry>
<title>avoid spurious lookup failures from badly-behaved nameservers</title>
<updated>2014-06-07T08:09:21+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2014-06-07T08:09:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=246e752d9e7c472735444815163f0a22e5bc4161'/>
<id>246e752d9e7c472735444815163f0a22e5bc4161</id>
<content type='text'>
the results of a dns query, whether it's performed as part of one of
the standard name-resolving functions or directly by res_send, should
be a function of the query, not of the particular nameserver that
responds to it. thus, all responses which indicate a failure or
refusal by the nameserver, as opposed to a positive or negative result
for the query, should be ignored.

the strategy used is to re-issue the query immediately (but with a
limit on the number of retries, in case the server is really broken)
when a response code of 2 (server failure, typically transient) is
seen, and otherwise take no action on bad responses (which generally
indicate a misconfigured nameserver or one which the client does not
have permission to use), allowing the normal retry interval to apply
and of course accepting responses from other nameservers queried in
parallel.

empirically this matches the traditional resolver behavior for
nameservers that respond with a code of 2 in the case where there is
just a single nameserver configured. the behavior diverges when
multiple nameservers are available, since musl is querying them in
parallel. in this case we are mildly more aggressive at retrying.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the results of a dns query, whether it's performed as part of one of
the standard name-resolving functions or directly by res_send, should
be a function of the query, not of the particular nameserver that
responds to it. thus, all responses which indicate a failure or
refusal by the nameserver, as opposed to a positive or negative result
for the query, should be ignored.

the strategy used is to re-issue the query immediately (but with a
limit on the number of retries, in case the server is really broken)
when a response code of 2 (server failure, typically transient) is
seen, and otherwise take no action on bad responses (which generally
indicate a misconfigured nameserver or one which the client does not
have permission to use), allowing the normal retry interval to apply
and of course accepting responses from other nameservers queried in
parallel.

empirically this matches the traditional resolver behavior for
nameservers that respond with a code of 2 in the case where there is
just a single nameserver configured. the behavior diverges when
multiple nameservers are available, since musl is querying them in
parallel. in this case we are mildly more aggressive at retrying.
</pre>
</div>
</content>
</entry>
<entry>
<title>optimize SOCK_CLOEXEC fallback for socket function</title>
<updated>2014-06-06T19:30:28+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2014-06-06T19:30:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1cacc01dc0623ac6443e19580222331812bddbbc'/>
<id>1cacc01dc0623ac6443e19580222331812bddbbc</id>
<content type='text'>
the fcntl function is heavy, so make the syscall directly instead.
also, avoid the code size and runtime overhead of querying the old
flags, since it's reasonable to assume nothing will be set on a
newly-created socket. this code is only used on old kernels which lack
proper atomic close-on-exec support, so future changes that might
invalidate such an assumption do not need to be considered.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the fcntl function is heavy, so make the syscall directly instead.
also, avoid the code size and runtime overhead of querying the old
flags, since it's reasonable to assume nothing will be set on a
newly-created socket. this code is only used on old kernels which lack
proper atomic close-on-exec support, so future changes that might
invalidate such an assumption do not need to be considered.
</pre>
</div>
</content>
</entry>
<entry>
<title>add SOCK_CLOEXEC fallback for socketpair on old kernels</title>
<updated>2014-06-06T19:29:00+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2014-06-06T19:29:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1d348566e6ab446d9c452b1b93aede74368b6618'/>
<id>1d348566e6ab446d9c452b1b93aede74368b6618</id>
<content type='text'>
as usual, this is non-atomic, but better than producing an error or
failing to set the close-on-exec flag at all.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
as usual, this is non-atomic, but better than producing an error or
failing to set the close-on-exec flag at all.
</pre>
</div>
</content>
</entry>
<entry>
<title>implement dn_comp RFC 1035 domain name compression</title>
<updated>2014-06-06T18:44:54+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2014-06-06T18:44:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=abce3156399f30d9b16e198af62af7f7c33fcbe0'/>
<id>abce3156399f30d9b16e198af62af7f7c33fcbe0</id>
<content type='text'>
the input name is validated, the other parameters are assumed to be
valid (the list of already compressed names are not checked for
infinite reference loops or out-of-bound offsets).

names are handled case-sensitively for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the input name is validated, the other parameters are assumed to be
valid (the list of already compressed names are not checked for
infinite reference loops or out-of-bound offsets).

names are handled case-sensitively for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>accept trailing . and empty domain names</title>
<updated>2014-06-06T18:41:15+00:00</updated>
<author>
<name>Szabolcs Nagy</name>
<email>nsz@port70.net</email>
</author>
<published>2014-06-06T17:20:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=07355f503a9b0a3ab7a051e2931499a4c5898b15'/>
<id>07355f503a9b0a3ab7a051e2931499a4c5898b15</id>
<content type='text'>
trailing . should be accepted in domain name strings by convention
(RFC 1034), host name lookup accepts "." but rejects empty "", res_*
interfaces also accept empty name following existing practice.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
trailing . should be accepted in domain name strings by convention
(RFC 1034), host name lookup accepts "." but rejects empty "", res_*
interfaces also accept empty name following existing practice.
</pre>
</div>
</content>
</entry>
</feed>
