summaryrefslogtreecommitdiffstats
path: root/fbench/src/httpclient/httpclient.cpp
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-12 09:20:18 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-12 09:20:18 +0000
commit769da18bf47b480e3b0822dd255f5570f56be846 (patch)
tree38dd076d1a05d122bbcb6a7e83d9941707e1ba25 /fbench/src/httpclient/httpclient.cpp
parentf317eace34bf4040c75fd10ac3f322b92b4b8876 (diff)
Do not aggregate header info over multiple calls
Diffstat (limited to 'fbench/src/httpclient/httpclient.cpp')
-rw-r--r--fbench/src/httpclient/httpclient.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/fbench/src/httpclient/httpclient.cpp b/fbench/src/httpclient/httpclient.cpp
index 9615a6e6df7..9265905c9f6 100644
--- a/fbench/src/httpclient/httpclient.cpp
+++ b/fbench/src/httpclient/httpclient.cpp
@@ -37,7 +37,6 @@ HTTPClient::HTTPClient(vespalib::CryptoEngine::SP engine, const char *hostname,
_buf(new char[_bufsize]),
_bufused(0),
_bufpos(0),
- _headerinfo(),
_isOpen(false),
_httpVersion(0),
_requestStatus(0),
@@ -219,7 +218,7 @@ HTTPClient::SplitString(char *input, int &argc, char **argv, int maxargs)
}
bool
-HTTPClient::ReadHTTPHeader()
+HTTPClient::ReadHTTPHeader(std::string & headerinfo)
{
int lineLen;
char line[4096];
@@ -268,8 +267,8 @@ HTTPClient::ReadHTTPHeader()
}
// Make sure to have enough memory in _headerinfo
- _headerinfo += benchmark_data;
- _headerinfo += "\n";
+ headerinfo += benchmark_data;
+ headerinfo += "\n";
}
SplitString(line, argc, argv, 32);
@@ -354,7 +353,7 @@ HTTPClient::ReadChunkHeader()
}
bool
-HTTPClient::Open(const char *url, bool usePost, const char *content, int cLen)
+HTTPClient::Open(std::string & headerinfo, const char *url, bool usePost, const char *content, int cLen)
{
if (_isOpen)
Close();
@@ -363,7 +362,7 @@ HTTPClient::Open(const char *url, bool usePost, const char *content, int cLen)
_dataRead = 0;
_dataDone = false;
_isOpen = Connect(url, usePost, content, cLen);
- if(!_isOpen || !ReadHTTPHeader()) {
+ if(!_isOpen || !ReadHTTPHeader(headerinfo)) {
Close();
return false;
}
@@ -532,20 +531,20 @@ HTTPClient::Fetch(const char *url, std::ostream *file,
ssize_t readRes = 0;
ssize_t written = 0;
- if (!Open(url, usePost, content, contentLen)) {
+ std::string headerinfo;
+ if (!Open(headerinfo, url, usePost, content, contentLen)) {
return FetchStatus(false, _requestStatus, _totalHitCount, 0);
}
// Write headerinfo
if (file) {
- file->write(_headerinfo.c_str(), _headerinfo.length());
+ file->write(headerinfo.c_str(), headerinfo.length());
if (file->fail()) {
Close();
return FetchStatus(false, _requestStatus, _totalHitCount, 0);
}
file->write("\r\n", 2);
// Reset header data.
- _headerinfo = "";
}
while((readRes = Read(buf, buflen)) > 0) {