<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/methods, branch 2.1.8</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=2.1.8</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=2.1.8'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2020-08-04T10:34:38Z</updated>
<entry>
<title>Merge branch 'pu/http-fixes-2' into 'master'</title>
<updated>2020-08-04T10:34:38Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2020-08-04T10:34:38Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=7d222636954ec95382149e31b314e9828ba05a2e'/>
<id>urn:sha1:7d222636954ec95382149e31b314e9828ba05a2e</id>
<content type='text'>
Pu/http fixes 2

See merge request apt-team/apt!125</content>
</entry>
<entry>
<title>Merge branch 'pu/less-slaves' into 'master'</title>
<updated>2020-08-04T10:12:30Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2020-08-04T10:12:30Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=11530bab64efd4b4fc46de7833533cea9c69f521'/>
<id>urn:sha1:11530bab64efd4b4fc46de7833533cea9c69f521</id>
<content type='text'>
Remove master/slave terminology

See merge request apt-team/apt!124</content>
</entry>
<entry>
<title>gpgv: Rename master to primary</title>
<updated>2020-08-04T10:12:11Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-07-14T14:19:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9cb5a81168307e15f209173ad9286835bff2df65'/>
<id>urn:sha1:9cb5a81168307e15f209173ad9286835bff2df65</id>
<content type='text'>
</content>
</entry>
<entry>
<title>http: Always write to the file if there's something to write</title>
<updated>2020-08-04T09:46:39Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-08-04T09:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=27d36318b98f3a070fb24557ce691718ef4eec34'/>
<id>urn:sha1:27d36318b98f3a070fb24557ce691718ef4eec34</id>
<content type='text'>
We only add the file to the select() call if we have data to
write to it prior to the select() call. This is problematic:

Assuming we enter Go() with no data to write to the file,
but we read some from the server as well as an EOF, we end
up not writing it to the file because we did not add the file
to the select.

We can't always add the file to the select(), because it's
basically always ready and we don't want to wake up if we
don't have anything to read or write.

So for a solution, let's just always write data to the file
if there's data to write to it. If some gets leftover, or if
some was already present when we started Go(), it will still
be added to the select() call and unblock it.

Closes: #959518
</content>
</entry>
<entry>
<title>http: Redesign reading of pending data</title>
<updated>2020-07-24T14:30:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T12:03:21Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=08f05aa8beb58fa32485e2087eb21a9f3cb267bb'/>
<id>urn:sha1:08f05aa8beb58fa32485e2087eb21a9f3cb267bb</id>
<content type='text'>
Instead of reading the data early, disable the timeout for the
select() call and read the data later. Also, change Read() to
call only once to drain the buffer in such instances.

We could optimize this to call read() multiple times if there
is also pending stuff on the socket, but that it slightly more
complex and should not provide any benefits.
</content>
</entry>
<entry>
<title>http: On select timeout, error out directly, do not call Die()</title>
<updated>2020-07-24T14:30:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T10:31:55Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=c2cb8abbf5d8a49b25071ffffca93a083fe725fc'/>
<id>urn:sha1:c2cb8abbf5d8a49b25071ffffca93a083fe725fc</id>
<content type='text'>
The error handling in Die() that's supposed to add useful error
messages is not super useful here.
</content>
</entry>
<entry>
<title>http: Finish copying data from server to file before sending stuff to server</title>
<updated>2020-07-24T14:30:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T10:23:02Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=9742032dcdc0e72c117ae0c589fbb59452d6d33c'/>
<id>urn:sha1:9742032dcdc0e72c117ae0c589fbb59452d6d33c</id>
<content type='text'>
This avoids a case where we read data, then write to the server
and only then realize the connection was closed. It is somewhat
slower, though.
</content>
</entry>
<entry>
<title>http: Die(): Do not flush the buffer, error out instead</title>
<updated>2020-07-24T14:30:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T09:48:28Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=24d308455a5f8751f57219f211a5672af340099e'/>
<id>urn:sha1:24d308455a5f8751f57219f211a5672af340099e</id>
<content type='text'>
By changing the buffer implementation to return true if it
read or wrote something, even on EOF, we should not have a
need to flush the buffer in Die() anymore - we should only
be calling Die() if the buffer is empty now.
</content>
</entry>
<entry>
<title>http: Only return false for EOF if we actually did not read anything</title>
<updated>2020-07-24T14:30:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T09:45:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=cb743d117bcc666dab4c5948b1227ed2edbd0578'/>
<id>urn:sha1:cb743d117bcc666dab4c5948b1227ed2edbd0578</id>
<content type='text'>
This should avoid the need to Flush the buffer in Die(), because
if we read anything, we are returning true, and not entering Die()
at that point.

Also Write() does not have a concept of EOF, so get rid of code
handling that there. Was that copied from Read()?
</content>
</entry>
<entry>
<title>http: Die(): Merge flushing code from Flush()</title>
<updated>2020-07-24T14:30:43Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>julian.klode@canonical.com</email>
</author>
<published>2020-06-29T09:37:29Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=1ee3b64be054a8deb6a598d93047637448e1928e'/>
<id>urn:sha1:1ee3b64be054a8deb6a598d93047637448e1928e</id>
<content type='text'>
Die() needs its own Copy() of Flush() because it needs to return
success or failure based on some states, but those are not precisely
the same as Flush(), as Flush() will always return false at the end,
for example, but we want to fall through to our error handling.
</content>
</entry>
</feed>
