]> git.saurik.com Git - apt.git/commitdiff
webserver: spurious newline after data confuses curl
authorDavid Kalnischkies <kalnischkies@gmail.com>
Fri, 11 Oct 2013 11:21:01 +0000 (13:21 +0200)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 30 Nov 2013 11:38:26 +0000 (12:38 +0100)
Webserver wrongly sends an additional newline after the data which
causes curl to believe that the next request on this socket has no
header data and so includes all headers in the data output.

Git-Dch: Ignore

test/interactive-helper/aptwebserver.cc

index 4dae342dd5f5bbb43021cf355f67122473c46aff..6c5634de615c26b45bd495efa4103d77adeb42c7 100644 (file)
@@ -137,21 +137,21 @@ bool sendFile(int const client, FileFd &data)                             /*{{{*/
    {
       if (actual == 0)
         break;
-      if (Success == true)
-        Success &= FileFd::Write(client, buffer, actual);
+      Success &= FileFd::Write(client, buffer, actual);
    }
-   if (Success == true)
-      Success &= FileFd::Write(client, "\r\n", 2);
+   if (Success == false)
+      std::cerr << "SENDFILE: READ/WRITE ERROR to " << client << std::endl;
    return Success;
 }
                                                                        /*}}}*/
 bool sendData(int const client, std::string const &data)               /*{{{*/
 {
-   bool Success = true;
-   Success &= FileFd::Write(client, data.c_str(), data.size());
-   if (Success == true)
-      Success &= FileFd::Write(client, "\r\n", 2);
-   return Success;
+   if (FileFd::Write(client, data.c_str(), data.size()) == false)
+   {
+      std::cerr << "SENDDATA: WRITE ERROR to " << client << std::endl;
+      return false;
+   }
+   return true;
 }
                                                                        /*}}}*/
 void sendError(int const client, int const httpcode, std::string const &request,/*{{{*/