<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apk-tools/libfetch, branch master</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: fix no_proxy domain name comparision</title>
<updated>2020-04-01T08:08:43+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2020-04-01T08:08:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=d6c54f932054c58aee8f7a6d2bd49b115d804da1'/>
<id>d6c54f932054c58aee8f7a6d2bd49b115d804da1</id>
<content type='text'>
Fix comparing of the hostname portion that matches exactly.
The no_proxy matching is pretty rudimentary though and probably
could go through a bit of additional rework.

Fixes #10681
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix comparing of the hostname portion that matches exactly.
The no_proxy matching is pretty rudimentary though and probably
could go through a bit of additional rework.

Fixes #10681
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: fixups to packetization socket option setting</title>
<updated>2020-03-25T06:50:44+00:00</updated>
<author>
<name>Timo Teräs</name>
<email>timo.teras@iki.fi</email>
</author>
<published>2020-03-25T06:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=eae92bbacf3c005bf12f8f5f5555bff953ebb5d7'/>
<id>eae92bbacf3c005bf12f8f5f5555bff953ebb5d7</id>
<content type='text'>
- split the code to a helper function
- do not set sockets to corked state when putting back to
  cache so socket state is always deterministic
- cork/uncork also when sending CONNECT to a proxy, this
  can reduce a little bit the latency how fast the packet
  gets sent out
- also pair corking with uncorking in http_request to make
  it more obvious pairing
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- split the code to a helper function
- do not set sockets to corked state when putting back to
  cache so socket state is always deterministic
- cork/uncork also when sending CONNECT to a proxy, this
  can reduce a little bit the latency how fast the packet
  gets sent out
- also pair corking with uncorking in http_request to make
  it more obvious pairing
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: minor HTTP handling improvement</title>
<updated>2020-03-25T06:33:37+00:00</updated>
<author>
<name>Alexander Wauck</name>
<email>waucka@ironstarconsulting.net</email>
</author>
<published>2020-03-24T19:51:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git-old.alpinelinux.org/apk-tools/commit/?id=09dbe46a7608f56f07914137834e7ddda15c4837'/>
<id>09dbe46a7608f56f07914137834e7ddda15c4837</id>
<content type='text'>
The recent TCP_CORK change missed this bit of code.  This change
should improve performance a bit when making HTTP requests by calling
http_cmd only once instead of three times.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The recent TCP_CORK change missed this bit of code.  This change
should improve performance a bit when making HTTP requests by calling
http_cmd only once instead of three times.
</pre>
</div>
</content>
</entry>
<entry>
<title>libfetch: support TCP_CORK</title>
<updated>2020-02-18T13:36:01+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=271047cc930150a2972573625124b0c097ad322a'/>
<id>271047cc930150a2972573625124b0c097ad322a</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.
</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.
</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>
</feed>
