Skip to content

Commit fdc46ab

Browse files
committed
FIX | proxy bug #4
1 parent 3381a70 commit fdc46ab

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

main.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,9 @@ int main () {
211211

212212
router.GET ("/fetch", [&a] (manapi::net::http::request &req, manapi::net::http::response *resp)
213213
-> void {
214-
resp->proxy("https://www.wikipedia.org").unwrap();
214+
resp->proxy("https://www.wikipedia.org", [] (manapi::net::fetch &n) -> void {
215+
n.verbose(true);
216+
}).unwrap();
215217
resp->finish();
216218
}).unwrap();
217219

src/services/ManapiFetch.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,8 +1286,11 @@ manapi::error::status manapi::net::fetch::headers(std::map<std::string, std::str
12861286
{
12871287
try {
12881288
auto val = std::make_pair<std::string_view, std::string_view>(header.first, header.second);
1289-
char data[http::stringify_header_size(val)];
1289+
auto const ss = http::stringify_header_size(val);
1290+
char data[ss + 1];
12901291
auto hv = manapi::net::http::stringify_header(data, val);
1292+
assert(ss == hv);
1293+
data[ss]='\0';
12911294
this->data->curl_headers.reset(curl_slist_append(this->data->curl_headers.release(), data));
12921295
if (!this->data->curl_headers)
12931296
return manapi::error::status_resource_exhausted();
@@ -1305,8 +1308,11 @@ manapi::error::status manapi::net::fetch::header_(std::string_view key, std::str
13051308

13061309
try {
13071310
auto val = std::make_pair(key, value);
1308-
char data[http::stringify_header_size(val)];
1311+
auto const ss = http::stringify_header_size(val);
1312+
char data[ss + 1];
13091313
auto hv = manapi::net::http::stringify_header(data, val);
1314+
assert(ss==hv);
1315+
data[hv] = '\0';
13101316
this->data->curl_headers.reset(curl_slist_append(this->data->curl_headers.release(), data));
13111317
if (!this->data->curl_headers)
13121318
return manapi::error::status_resource_exhausted();
@@ -1354,9 +1360,11 @@ manapi::error::status manapi::net::fetch::json_headers(manapi::json headers) MAN
13541360
}
13551361
auto val = std::make_pair<std::string_view, std::string_view>(header.first, {});
13561362
val.second = val_view;
1357-
1358-
char data[http::stringify_header_size(val)];
1363+
auto const ss = http::stringify_header_size(val);
1364+
char data[ss + 1];
13591365
auto hv = manapi::net::http::stringify_header(data, val);
1366+
assert(ss==hv);
1367+
data[ss] = '\0';
13601368
this->data->curl_headers.reset(curl_slist_append(this->data->curl_headers.release(), data));
13611369
}
13621370
catch (std::exception const &e) {

0 commit comments

Comments
 (0)