Support decryptedMessageService8. Don't fail secret chat on closing.
GitOrigin-RevId: 627ea95e7994513d10aa19d026fc87170362e711
This commit is contained in:
parent
2a50835118
commit
9882a8a619
@ -1264,6 +1264,11 @@ Status SecretChatActor::do_inbound_message_decrypted(std::unique_ptr<logevent::I
|
|||||||
old->flags_, old->random_id_, old->ttl_, std::move(old->message_), std::move(old->media_),
|
old->flags_, old->random_id_, old->ttl_, std::move(old->message_), std::move(old->media_),
|
||||||
std::move(old->entities_), std::move(old->via_bot_name_), old->reply_to_random_id_, 0);
|
std::move(old->entities_), std::move(old->via_bot_name_), old->reply_to_random_id_, 0);
|
||||||
}
|
}
|
||||||
|
if (message->decrypted_message_layer->message_->get_id() == secret_api::decryptedMessageService8::ID) {
|
||||||
|
auto old = move_tl_object_as<secret_api::decryptedMessageService8>(message->decrypted_message_layer->message_);
|
||||||
|
message->decrypted_message_layer->message_ =
|
||||||
|
secret_api::make_object<secret_api::decryptedMessageService>(old->random_id_, std::move(old->action_));
|
||||||
|
}
|
||||||
|
|
||||||
// NB: message is invalid after this 'move_as'
|
// NB: message is invalid after this 'move_as'
|
||||||
// Send update through context_
|
// Send update through context_
|
||||||
@ -1656,6 +1661,9 @@ void SecretChatActor::on_outbound_send_message_error(uint64 state_id, Status err
|
|||||||
if (close_flag_) {
|
if (close_flag_) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (context_->close_flag()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
auto *state = outbound_message_states_.get(state_id);
|
auto *state = outbound_message_states_.get(state_id);
|
||||||
if (!state) {
|
if (!state) {
|
||||||
return;
|
return;
|
||||||
@ -2252,8 +2260,7 @@ void SecretChatActor::request_new_key() {
|
|||||||
|
|
||||||
void SecretChatActor::on_promise_error(Status error, string desc) {
|
void SecretChatActor::on_promise_error(Status error, string desc) {
|
||||||
if (context_->close_flag()) {
|
if (context_->close_flag()) {
|
||||||
// ignore
|
LOG(DEBUG) << "Ignore " << tag("promise", desc) << error;
|
||||||
LOG(ERROR) << "IGNORE";
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
LOG(FATAL) << "Failed: " << tag("promise", desc) << error;
|
LOG(FATAL) << "Failed: " << tag("promise", desc) << error;
|
||||||
|
Loading…
Reference in New Issue
Block a user