mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Bugfixes in rldp-http-proxy and http parser
This commit is contained in:
parent
4b940f8bad
commit
69cee95abb
4 changed files with 7 additions and 5 deletions
|
@ -79,10 +79,10 @@ td::Status HttpInboundConnection::receive(td::ChainBufferReader &input) {
|
||||||
send_client_error();
|
send_client_error();
|
||||||
return td::Status::OK();
|
return td::Status::OK();
|
||||||
}
|
}
|
||||||
|
cur_request_ = R.move_as_ok();
|
||||||
if (exit_loop) {
|
if (exit_loop) {
|
||||||
return td::Status::OK();
|
return td::Status::OK();
|
||||||
}
|
}
|
||||||
cur_request_ = R.move_as_ok();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
auto payload = cur_request_->create_empty_payload().move_as_ok();
|
auto payload = cur_request_->create_empty_payload().move_as_ok();
|
||||||
|
|
|
@ -42,10 +42,10 @@ td::Status HttpOutboundConnection::receive(td::ChainBufferReader &input) {
|
||||||
answer_error(HttpStatusCode::status_bad_request, "", std::move(promise_));
|
answer_error(HttpStatusCode::status_bad_request, "", std::move(promise_));
|
||||||
return td::Status::OK();
|
return td::Status::OK();
|
||||||
}
|
}
|
||||||
|
cur_response_ = R.move_as_ok();
|
||||||
if (exit_loop) {
|
if (exit_loop) {
|
||||||
return td::Status::OK();
|
return td::Status::OK();
|
||||||
}
|
}
|
||||||
cur_response_ = R.move_as_ok();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cur_response_->code() == 100) {
|
if (cur_response_->code() == 100) {
|
||||||
|
|
|
@ -587,7 +587,7 @@ tl_object_ptr<ton_api::http_payloadPart> HttpPayload::store_tl(size_t max_size)
|
||||||
max_size -= s.size();
|
max_size -= s.size();
|
||||||
}
|
}
|
||||||
obj->data_.truncate(obj->data_.size() - S.size());
|
obj->data_.truncate(obj->data_.size() - S.size());
|
||||||
if (chunks_.size() != 0) {
|
if (chunks_.size() != 0 || !parse_completed()) {
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
if (!written_zero_chunk_) {
|
if (!written_zero_chunk_) {
|
||||||
|
|
|
@ -117,7 +117,7 @@ class HttpRemote : public td::actor::Actor {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
td::actor::send_closure(client_, &ton::http::HttpClient::send_request, std::move(request), std::move(payload),
|
td::actor::send_closure(client_, &ton::http::HttpClient::send_request, std::move(request), std::move(payload),
|
||||||
td::Timestamp::in(30.0), std::move(P));
|
td::Timestamp::never(), std::move(P));
|
||||||
} else {
|
} else {
|
||||||
ton::http::answer_error(ton::http::HttpStatusCode::status_bad_request, "", std::move(promise));
|
ton::http::answer_error(ton::http::HttpStatusCode::status_bad_request, "", std::move(promise));
|
||||||
}
|
}
|
||||||
|
@ -801,6 +801,7 @@ class RldpToTcpRequestSender : public td::actor::Actor {
|
||||||
, dst_(dst)
|
, dst_(dst)
|
||||||
, request_(std::move(request))
|
, request_(std::move(request))
|
||||||
, request_payload_(std::move(request_payload))
|
, request_payload_(std::move(request_payload))
|
||||||
|
, proto_version_(request_->proto_version())
|
||||||
, promise_(std::move(promise))
|
, promise_(std::move(promise))
|
||||||
, adnl_(adnl)
|
, adnl_(adnl)
|
||||||
, rldp_(rldp)
|
, rldp_(rldp)
|
||||||
|
@ -836,7 +837,7 @@ class RldpToTcpRequestSender : public td::actor::Actor {
|
||||||
|
|
||||||
void abort_query(td::Status error) {
|
void abort_query(td::Status error) {
|
||||||
LOG(INFO) << "aborting http over rldp query: " << error;
|
LOG(INFO) << "aborting http over rldp query: " << error;
|
||||||
promise_.set_result(create_error_response(request_->proto_version(), 502, "Bad Gateway"));
|
promise_.set_result(create_error_response(proto_version_, 502, "Bad Gateway"));
|
||||||
stop();
|
stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -848,6 +849,7 @@ class RldpToTcpRequestSender : public td::actor::Actor {
|
||||||
|
|
||||||
std::unique_ptr<ton::http::HttpRequest> request_;
|
std::unique_ptr<ton::http::HttpRequest> request_;
|
||||||
std::shared_ptr<ton::http::HttpPayload> request_payload_;
|
std::shared_ptr<ton::http::HttpPayload> request_payload_;
|
||||||
|
std::string proto_version_;
|
||||||
|
|
||||||
td::Promise<td::BufferSlice> promise_;
|
td::Promise<td::BufferSlice> promise_;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue