diff --git a/methods/http.cc b/methods/http.cc index 357ae697691eeee880c82370b8e18eb8901733b8..16aaffc7554067ebb9816edbf44abbb170f38b2a 100644 --- a/methods/http.cc +++ b/methods/http.cc @@ -841,13 +841,6 @@ ResultState HttpServerState::Go(bool ToFile, RequestState &Req) return Die(Req); } - if (ServerFd->Fd() != -1 && FD_ISSET(ServerFd->Fd(), &wfds)) - { - errno = 0; - if (Out.Write(ServerFd) == false) - return Die(Req); - } - // Send data to the file if (FileFD->Fd() != -1 && FD_ISSET(FileFD->Fd(), &wfds)) { @@ -858,6 +851,13 @@ ResultState HttpServerState::Go(bool ToFile, RequestState &Req) } } + if (ServerFd->Fd() != -1 && FD_ISSET(ServerFd->Fd(), &wfds)) + { + errno = 0; + if (Out.Write(ServerFd) == false) + return Die(Req); + } + if (Req.MaximumSize > 0 && Req.File.IsOpen() && Req.File.Failed() == false && Req.File.Tell() > Req.MaximumSize) { Owner->SetFailReason("MaximumSizeExceeded");