<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods/server.h, branch 1.0.9.5</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.0.9.5</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.0.9.5'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2014-12-22T13:23:39Z</updated>
<entry>
<title>dispose http(s) 416 error page as non-content</title>
<updated>2014-12-22T13:23:39Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-11-29T16:59:52Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=92e8c1ff287ab829de825e00cdf94744e699ff97'/>
<id>urn:sha1:92e8c1ff287ab829de825e00cdf94744e699ff97</id>
<content type='text'>
Real webservers (like apache) actually send an error page with a 416
response, but our client didn't expect it leaving the page on the socket
to be parsed as response for the next request (http) or as file content
(https), which isn't what we want at all… Symptom is a "Bad header line"
as html usually doesn't parse that well to an http-header.

This manifests itself e.g. if we have a complete file (or larger) in
partial/ which isn't discarded by If-Range as the server doesn't support
it (or it is just newer, think: mirror rotation).
It is a sort-of regression of 78c72d0ce22e00b194251445aae306df357d5c1a,
which removed the filesize - 1 trick, but this had its own problems…

To properly test this our webserver gains the ability to reply with
transfer-encoding: chunked as most real webservers will use it to send
the dynamically generated error pages.

(The tests and their binary helpers had to be slightly modified to
apply, but the patch to fix the issue itself is unchanged.)

Closes: 768797
</content>
</entry>
<entry>
<title>Improve Debug::Acquire::http debug output</title>
<updated>2014-09-05T14:24:32Z</updated>
<author>
<name>Michael Vogt</name>
<email>mvo@ubuntu.com</email>
</author>
<published>2014-09-05T14:24:32Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9622b2111095c3fc705ec0615d27fe403e18c3b8'/>
<id>urn:sha1:9622b2111095c3fc705ec0615d27fe403e18c3b8</id>
<content type='text'>
Prefix all answers with the URL that the answer is for. This
helps when debugging and pipeline is enabled.
</content>
</entry>
<entry>
<title>follow method attribute suggestions by gcc</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-05T23:33:10Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a02db58fd50ef7fc2f0284852c6b3f98e458a232'/>
<id>urn:sha1:a02db58fd50ef7fc2f0284852c6b3f98e458a232</id>
<content type='text'>
Git-Dch: Ignore
Reported-By: gcc -Wsuggest-attribute={pure,const,noreturn}
</content>
</entry>
<entry>
<title>cleanup headers and especially #includes everywhere</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-03-05T21:11:25Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=453b82a388013e522b3a1b9fcd6ed0810dab1f4f'/>
<id>urn:sha1:453b82a388013e522b3a1b9fcd6ed0810dab1f4f</id>
<content type='text'>
Beside being a bit cleaner it hopefully also resolves oddball problems
I have with high levels of parallel jobs.

Git-Dch: Ignore
Reported-By: iwyu (include-what-you-use)
</content>
</entry>
<entry>
<title>StartPos is always positive for http/https</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-02-27T00:26:29Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=3de8f956d5fcf023ab65f88579cd77121694d872'/>
<id>urn:sha1:3de8f956d5fcf023ab65f88579cd77121694d872</id>
<content type='text'>
server.cc: In member function ‘bool ServerState::HeaderLine(std::string)’:
server.cc:198:72: warning: format ‘%llu’ expects argument of type ‘long long unsigned int*’, but argument 3 has type ‘long long int*’ [-Wformat=]
       else if (sscanf(Val.c_str(),"bytes %llu-%*u/%llu",&amp;StartPos,&amp;Size) != 2)

Git-Dch: Ignore
Reported-By: gcc -Wpedantic
</content>
</entry>
<entry>
<title>warning: extra ‘;’ [-Wpedantic]</title>
<updated>2014-03-13T12:58:45Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-02-27T00:20:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=d3e8fbb395f57954acd7a2095f02ce530a05ec6a'/>
<id>urn:sha1:d3e8fbb395f57954acd7a2095f02ce530a05ec6a</id>
<content type='text'>
Git-Dch: Ignore
Reported-By: gcc -Wpedantic
</content>
</entry>
<entry>
<title>correct some style/performance/warnings from cppcheck</title>
<updated>2014-01-16T21:19:49Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2014-01-16T21:19:49Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9ce3cfc9309c55cc01018c88c1ca82779fd74431'/>
<id>urn:sha1:9ce3cfc9309c55cc01018c88c1ca82779fd74431</id>
<content type='text'>
The most "visible" change is from utime to utimensat/futimens
as the first one isn't part of POSIX anymore.

Reported-By: cppcheck
Git-Dch: Ignore
</content>
</entry>
<entry>
<title>handle complete responses to https range requests</title>
<updated>2013-10-01T09:17:02Z</updated>
<author>
<name>David Kalnischkies</name>
<email>kalnischkies@gmail.com</email>
</author>
<published>2013-09-30T14:41:16Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=fd46d30571eb240ec3aae792e7a56061ede50524'/>
<id>urn:sha1:fd46d30571eb240ec3aae792e7a56061ede50524</id>
<content type='text'>
Servers might respond with a complete file either because they don't
support Ranges at all or the If-Range condition isn't statisfied, so we
have to parse the headers curl gets ourself to seek or truncate the file
we have so far.

This also finially adds the testcase testing a bunch of partial
situations for both, http and https - which is now all green.

Closes: 617643, 667699
LP: 1157943
</content>
</entry>
<entry>
<title>refactor http client implementation</title>
<updated>2013-10-01T09:06:56Z</updated>
<author>
<name>David Kalnischkies</name>
<email>kalnischkies@gmail.com</email>
</author>
<published>2013-09-17T20:35:44Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7330f4df8b31e66f6557bf49c9c90ad9a73ff459'/>
<id>urn:sha1:7330f4df8b31e66f6557bf49c9c90ad9a73ff459</id>
<content type='text'>
No effective behavior change, just shuffling big junks of code between
methods and classes to split them into those strongly related to our
client implementation and those implementing HTTP.

The idea is to get HTTPS to a point in which most of the implementation
can be shared even though the client implementations itself is
completely different. This isn't anywhere near yet though, but it should
beenough to reuse at least a few lines from http in https now.

Git-Dch: Ignore
</content>
</entry>
</feed>
