summaryrefslogtreecommitdiff
path: root/methods/http.cc
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2005-11-28 22:27:06 +0000
committerMichael Vogt <michael.vogt@ubuntu.com>2005-11-28 22:27:06 +0000
commitb57c8bb4085634c3fbe219ae1fd005d6bd62987a (patch)
tree449a9d224f5e6fa1dfa4716880429c12e2e169cc /methods/http.cc
parent34255a9fad36a7dfc2365318f656d1ff6889df4f (diff)
* build-depend on libdb4.3 now, fix for kFreeBSD (#317718)
Diffstat (limited to 'methods/http.cc')
-rw-r--r--methods/http.cc10
1 files changed, 8 insertions, 2 deletions
diff --git a/methods/http.cc b/methods/http.cc
index a5c9601e7..dc3f0b763 100644
--- a/methods/http.cc
+++ b/methods/http.cc
@@ -824,7 +824,10 @@ bool HttpMethod::Flush(ServerState *Srv)
{
if (File != 0)
{
- SetNonBlock(File->Fd(),false);
+ // on GNU/kFreeBSD, apt dies on /dev/null because non-blocking
+ // can't be set
+ if (File->Name() != "/dev/null")
+ SetNonBlock(File->Fd(),false);
if (Srv->In.WriteSpace() == false)
return true;
@@ -852,7 +855,10 @@ bool HttpMethod::ServerDie(ServerState *Srv)
// Dump the buffer to the file
if (Srv->State == ServerState::Data)
{
- SetNonBlock(File->Fd(),false);
+ // on GNU/kFreeBSD, apt dies on /dev/null because non-blocking
+ // can't be set
+ if (File->Name() != "/dev/null")
+ SetNonBlock(File->Fd(),false);
while (Srv->In.WriteSpace() == true)
{
if (Srv->In.Write(File->Fd()) == false)