[haiku-commits] haiku: hrev47543 - src/kits/network/libnetapi

  • From: pulkomandy@xxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 21 Jul 2014 17:26:13 +0200 (CEST)

hrev47543 adds 1 changeset to branch 'master'
old head: d1e057eefb79dbdf2fe3c3ab20e6349109f577ea
new head: 6a13b12a9bc79961dda05acd35f99e9dc9c3b04d
overview: http://cgit.haiku-os.org/haiku/log/?qt=range&q=6a13b12+%5Ed1e057e

----------------------------------------------------------------------------

6a13b12: Write all HTTP headers to the socket in one go.
  
  We don't have support for TCP_CORK, which would let the kernel handle
  this, so this resulted in lots of very small packets being sent over the
  network. Besides the performance issues, this confused aliceadsl.fr HTTP
  server and prevented logging in to their website.
  
  Fixes #10556.

                             [ Adrien Destugues <pulkomandy@xxxxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev47543
Commit:      6a13b12a9bc79961dda05acd35f99e9dc9c3b04d
URL:         http://cgit.haiku-os.org/haiku/commit/?id=6a13b12
Author:      Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
Date:        Mon Jul 21 15:22:13 2014 UTC

Ticket:      https://dev.haiku-os.org/ticket/10556

----------------------------------------------------------------------------

1 file changed, 7 insertions(+), 2 deletions(-)
src/kits/network/libnetapi/HttpRequest.cpp | 9 +++++++--

----------------------------------------------------------------------------

diff --git a/src/kits/network/libnetapi/HttpRequest.cpp 
b/src/kits/network/libnetapi/HttpRequest.cpp
index 151f157..8aec11c 100644
--- a/src/kits/network/libnetapi/HttpRequest.cpp
+++ b/src/kits/network/libnetapi/HttpRequest.cpp
@@ -914,14 +914,19 @@ BHttpRequest::_SendHeaders()
        }
 
        // Write output headers to output stream
+       BString headerData;
+
        for (int32 headerIndex = 0; headerIndex < fOutputHeaders.CountHeaders();
                        headerIndex++) {
                const char* header = 
fOutputHeaders.HeaderAt(headerIndex).Header();
-               fSocket->Write(header, strlen(header));
-               fSocket->Write("\r\n", 2);
+
+               headerData << header;
+               headerData << "\r\n";
 
                _EmitDebug(B_URL_PROTOCOL_DEBUG_HEADER_OUT, "%s", header);
        }
+
+       fSocket->Write(headerData.String(), headerData.Length());
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev47543 - src/kits/network/libnetapi - pulkomandy