protocol: Fix case where download can fail for small files.
authorRichard W.M. Jones <rjones@redhat.com>
Thu, 18 Aug 2011 18:13:32 +0000 (19:13 +0100)
committerRichard W.M. Jones <rjones@redhat.com>
Thu, 18 Aug 2011 19:02:30 +0000 (20:02 +0100)
commite4cba8f2b1a68e7361ce342ff659cccb0490446e
tree636ff61679b6d8c9c853857f80c2967f4de7d904
parent06019bc82e107f7715ebc59e491610e06dad1e39
protocol: Fix case where download can fail for small files.

There is another case where downloads of small files could fail if the
library side (writer) fails.  In this case the library would send back
a cancellation, but it would be received after the daemon had finished
sending the whole file (because the file is small enough).  The daemon
would reenter the main loop and immediately get an unexpected cancel
message, causing the daemon to die.

This commit also makes test-cancellation-download-librarycancels.sh
more robust.  We use Monte-Carlo testing with a range of file sizes.
Small file sizes should trigger the error case.
daemon/proto.c
regressions/test-cancellation-download-librarycancels.sh