Return after call to on_error.

This commit is contained in:
levlam 2023-01-18 17:10:08 +03:00
parent d912fd1431
commit 1588f0d687
7 changed files with 21 additions and 22 deletions

View File

@ -263,11 +263,14 @@ class TlsHelloCalcLength {
}
Result<size_t> finish() {
if (status_.is_error()) {
return std::move(status_);
}
if (size_ > 514) {
on_error(Status::Error("Too long for zero padding"));
return Status::Error("Too long for zero padding");
}
if (size_ < 11 + 32) {
on_error(Status::Error("Too small for hash"));
return Status::Error("Too small for hash");
}
int zero_pad = 515 - static_cast<int>(size_);
using Op = TlsHello::Op;
@ -275,9 +278,8 @@ class TlsHelloCalcLength {
do_op(Op::zero(zero_pad), nullptr);
do_op(Op::end_scope(), nullptr);
if (!scope_offset_.empty()) {
on_error(Status::Error("Unbalanced scopes"));
return Status::Error("Unbalanced scopes");
}
TRY_STATUS(std::move(status_));
return size_;
}

View File

@ -1684,7 +1684,7 @@ class SaveDraftMessageQuery final : public Td::ResultHandler {
bool result = result_ptr.ok();
if (!result) {
on_error(Status::Error(400, "Save draft failed"));
return on_error(Status::Error(400, "Save draft failed"));
}
promise_.set_value(Unit());
@ -1761,7 +1761,7 @@ class ToggleDialogPinQuery final : public Td::ResultHandler {
bool result = result_ptr.ok();
if (!result) {
on_error(Status::Error(400, "Toggle dialog pin failed"));
return on_error(Status::Error(400, "Toggle dialog pin failed"));
}
promise_.set_value(Unit());
@ -1849,7 +1849,7 @@ class ToggleDialogUnreadMarkQuery final : public Td::ResultHandler {
bool result = result_ptr.ok();
if (!result) {
on_error(Status::Error(400, "Toggle dialog mark failed"));
return on_error(Status::Error(400, "Toggle dialog mark failed"));
}
promise_.set_value(Unit());

View File

@ -199,10 +199,10 @@ class CanPurchasePremiumQuery final : public Td::ResultHandler {
}
bool result = result_ptr.ok();
if (result) {
return promise_.set_value(Unit());
if (!result) {
return on_error(Status::Error(400, "Premium can't be purchased"));
}
on_error(Status::Error(400, "Premium can't be purchased"));
promise_.set_value(Unit());
}
void on_error(Status status) final {

View File

@ -864,11 +864,10 @@ class ReloadSpecialStickerSetQuery final : public Td::ResultHandler {
td_->stickers_manager_->on_get_messages_sticker_set(sticker_set_id_, std::move(set_ptr), false,
"ReloadSpecialStickerSetQuery");
}
if (sticker_set_id_.is_valid()) {
td_->stickers_manager_->on_get_special_sticker_set(type_, sticker_set_id_);
} else {
on_error(Status::Error(500, "Failed to add special sticker set"));
if (!sticker_set_id_.is_valid()) {
return on_error(Status::Error(500, "Failed to add special sticker set"));
}
td_->stickers_manager_->on_get_special_sticker_set(type_, sticker_set_id_);
}
void on_error(Status status) final {

View File

@ -2446,8 +2446,7 @@ void FileManager::run_download(FileNodePtr node, bool force_update_priority) {
QueryId query_id = queries_container_.create(Query{file_id, Query::Type::DownloadWaitFileReference});
node->download_id_ = query_id;
if (node->download_was_update_file_reference_) {
on_error(query_id, Status::Error("Can't download file: have no valid file reference"));
return;
return on_error(query_id, Status::Error("Can't download file: have no valid file reference"));
}
node->download_was_update_file_reference_ = true;
@ -2951,8 +2950,7 @@ void FileManager::run_upload(FileNodePtr node, vector<int> bad_parts) {
QueryId query_id = queries_container_.create(Query{file_id, Query::Type::UploadWaitFileReference});
node->upload_id_ = query_id;
if (node->upload_was_update_file_reference_) {
on_error(query_id, Status::Error("Can't upload file: have no valid file reference"));
return;
return on_error(query_id, Status::Error("Can't upload file: have no valid file reference"));
}
node->upload_was_update_file_reference_ = true;

View File

@ -67,14 +67,14 @@ void TransparentProxy::loop() {
TRY_STATUS(fd_.flush_read());
TRY_STATUS(loop_impl());
TRY_STATUS(fd_.flush_write());
if (can_close_local(fd_)) {
return Status::Error("Connection closed");
}
return Status::OK();
}();
if (status.is_error()) {
on_error(std::move(status));
}
if (can_close_local(fd_)) {
on_error(Status::Error("Connection closed"));
}
}
void TransparentProxy::timeout_expired() {

View File

@ -35,7 +35,7 @@ class StringBuilder {
void push_back(char c) {
if (unlikely(end_ptr_ <= current_ptr_)) {
if (!reserve_inner(RESERVED_SIZE)) {
on_error();
error_flag_ = true;
return;
}
}