<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apk-tools/libfetch, branch 2.10-stable</title>
<subtitle>Alpine Package Keeper, the 2.x tree
</subtitle>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/'/>
<entry>
<title>libfetch: support TCP_CORK</title>
<updated>2020-02-18T14:15:41+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2020-02-18T13:21:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=05a1f92e445c8559f1fea7d90534fb719168698f'/>
<id>05a1f92e445c8559f1fea7d90534fb719168698f</id>
<content type='text'>
Unfortunately libfetch operates on raw sockets and is sending
each HTTP request line using separate syscall which causes the
HTTP request to be sent as multiple packets over the wire in most
configurations. This is not good for performance, but can also
cause subtle breakage if there's DPI firewall that does not get
the Host header.

Incidentally, it seems that on BSDs libfetch already sets
TCP_NOPUSH optimize the packetization. This commit adds same
logic for using TCP_CORK if available. When using TCP_CORK
there is no requirement to set TCP_NODELAY as uncorking will
also cause immediate send. Keep TCP_NODELAY in the fallback
codepaths.

Long term, it might make sense to replace or rewrite libfetch
to use application level buffering.

(cherry picked from commit 271047cc930150a2972573625124b0c097ad322a)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unfortunately libfetch operates on raw sockets and is sending
each HTTP request line using separate syscall which causes the
HTTP request to be sent as multiple packets over the wire in most
configurations. This is not good for performance, but can also
cause subtle breakage if there's DPI firewall that does not get
the Host header.

Incidentally, it seems that on BSDs libfetch already sets
TCP_NOPUSH optimize the packetization. This commit adds same
logic for using TCP_CORK if available. When using TCP_CORK
there is no requirement to set TCP_NODELAY as uncorking will
also cause immediate send. Keep TCP_NODELAY in the fallback
codepaths.

Long term, it might make sense to replace or rewrite libfetch
to use application level buffering.

(cherry picked from commit 271047cc930150a2972573625124b0c097ad322a)
</pre>
</div>
</content>
</entry>
<entry>
<title>fix strncpy bounds errors</title>
<updated>2019-02-13T14:05:27+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2019-02-13T13:44:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=44daf808737f85ff462905269c7a1e66d52e2fff'/>
<id>44daf808737f85ff462905269c7a1e66d52e2fff</id>
<content type='text'>
error: 'strncpy' specified bound 4096 equals destination size [-Werror=stringop-truncation]

Based on patch by Elan Ruusamäe &lt;glen@delfi.ee&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
error: 'strncpy' specified bound 4096 equals destination size [-Werror=stringop-truncation]

Based on patch by Elan Ruusamäe &lt;glen@delfi.ee&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: do not give out user/hostname as ftp anonymous password</title>
<updated>2018-09-05T07:32:00+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2018-09-05T07:32:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=e4f54cfe6681b301fb32b455cb9bbab24d97c0f4'/>
<id>e4f54cfe6681b301fb32b455cb9bbab24d97c0f4</id>
<content type='text'>
This is unwanted information disclosure.

Reported-by: Max Justicz &lt;max@justi.cz&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is unwanted information disclosure.

Reported-by: Max Justicz &lt;max@justi.cz&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: support OpenSSL</title>
<updated>2018-01-31T20:04:46+00:00</updated>
<author>
<name>A. Wilcox</name>
<email>AWilcox@Wilcox-Tech.com</email>
</author>
<published>2018-01-31T20:03:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=36f5cf8e4bbe863a5bcfaf33f5f0a460993a339f'/>
<id>36f5cf8e4bbe863a5bcfaf33f5f0a460993a339f</id>
<content type='text'>
TLS_client_method is a LibreSSL extension.
SSLv23_client_method is generic, and doesn't mean SSL v2/v3 only.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TLS_client_method is a LibreSSL extension.
SSLv23_client_method is generic, and doesn't mean SSL v2/v3 only.
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: add option to set "Cache-Control: no-cache"</title>
<updated>2018-01-03T12:25:07+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2018-01-03T08:01:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=f90af35e9c563bd4f865d8d47a7ae357191494db'/>
<id>f90af35e9c563bd4f865d8d47a7ae357191494db</id>
<content type='text'>
ref #8161
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ref #8161
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: honor https_proxy variable for https</title>
<updated>2018-01-03T08:43:31+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2018-01-03T08:43:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=99e7bb93dfff2f43987b81ce7600ad8fbd0ce64c'/>
<id>99e7bb93dfff2f43987b81ce7600ad8fbd0ce64c</id>
<content type='text'>
fixes #8160
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes #8160
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: fix certificate host name check</title>
<updated>2017-10-06T15:09:37+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2017-10-06T15:09:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=0d814ba35b5e26eb9a42ea7a52521eca44306479'/>
<id>0d814ba35b5e26eb9a42ea7a52521eca44306479</id>
<content type='text'>
OpenSSL allows passing zero-length to indicate "use strlen".
LibreSSL requires using the real length always, so pass the length.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OpenSSL allows passing zero-length to indicate "use strlen".
LibreSSL requires using the real length always, so pass the length.
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: improve openssl/libressl compatibility</title>
<updated>2017-10-06T10:25:27+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2017-10-06T10:23:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=eb8f44d629aca3a780f7feedfee11794f14082ad'/>
<id>eb8f44d629aca3a780f7feedfee11794f14082ad</id>
<content type='text'>
X509_check_host() is introduced in libressl-2.5.0 and openssl-1.0.2
which are not yet universally available. Add support for building
against the older versions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
X509_check_host() is introduced in libressl-2.5.0 and openssl-1.0.2
which are not yet universally available. Add support for building
against the older versions.
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: improve ssl connections</title>
<updated>2017-10-05T13:59:14+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2017-10-05T13:39:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=52fd85a8dcfee9c93522d80693673bc95cc1caaf'/>
<id>52fd85a8dcfee9c93522d80693673bc95cc1caaf</id>
<content type='text'>
loosely based on the freebsd implementation, implement https
connection settings to override CA, and use client certificate.

new files supported in /etc/apk/:
  ca.pem   - if exists, it contains CAs acceptable for https
	     (otherwise system wide CAs are used)
  crl.pem  - if ca.pem is used, this is the (optional) CRL for it
  cert.pem - used as client authentication certificate (+ key)
  cert.key - used as client key (can be also inside cert.pem)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
loosely based on the freebsd implementation, implement https
connection settings to override CA, and use client certificate.

new files supported in /etc/apk/:
  ca.pem   - if exists, it contains CAs acceptable for https
	     (otherwise system wide CAs are used)
  crl.pem  - if ca.pem is used, this is the (optional) CRL for it
  cert.pem - used as client authentication certificate (+ key)
  cert.key - used as client key (can be also inside cert.pem)
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: remove unwanted code conditionals</title>
<updated>2017-10-05T13:59:14+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2017-10-05T10:47:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=531fea4c9082d6542c776dcb6d4ca0a3949ecdd0'/>
<id>531fea4c9082d6542c776dcb6d4ca0a3949ecdd0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
