Session: fix key deletion in http connections
GitOrigin-RevId: ddc80efe78a0a11dee7eb21c55d7efdd76a2be1d
This commit is contained in:
parent
331c8b52c1
commit
c2c32c4e2b
@ -283,7 +283,7 @@ Status SessionConnection::on_packet(const MsgInfo &info, const mtproto_api::dest
|
|||||||
}
|
}
|
||||||
|
|
||||||
Status SessionConnection::on_destroy_auth_key(const mtproto_api::DestroyAuthKeyRes &destroy_auth_key) {
|
Status SessionConnection::on_destroy_auth_key(const mtproto_api::DestroyAuthKeyRes &destroy_auth_key) {
|
||||||
CHECK(need_destroy_auth_key_);
|
LOG_CHECK(need_destroy_auth_key_) << static_cast<int32>(mode_);
|
||||||
LOG(INFO) << to_string(destroy_auth_key);
|
LOG(INFO) << to_string(destroy_auth_key);
|
||||||
return callback_->on_destroy_auth_key();
|
return callback_->on_destroy_auth_key();
|
||||||
}
|
}
|
||||||
|
@ -972,6 +972,9 @@ void Session::connection_open_finish(ConnectionInfo *info,
|
|||||||
auto name = PSTRING() << get_name() << "::Connect::" << mode_name << "::" << raw_connection->debug_str_;
|
auto name = PSTRING() << get_name() << "::Connect::" << mode_name << "::" << raw_connection->debug_str_;
|
||||||
LOG(INFO) << "Finished to open connection " << name;
|
LOG(INFO) << "Finished to open connection " << name;
|
||||||
info->connection = make_unique<mtproto::SessionConnection>(mode, std::move(raw_connection), &auth_data_);
|
info->connection = make_unique<mtproto::SessionConnection>(mode, std::move(raw_connection), &auth_data_);
|
||||||
|
if (can_destroy_auth_key()) {
|
||||||
|
info->connection->destroy_key();
|
||||||
|
}
|
||||||
info->connection->set_online(connection_online_flag_, is_main_);
|
info->connection->set_online(connection_online_flag_, is_main_);
|
||||||
info->connection->set_name(name);
|
info->connection->set_name(name);
|
||||||
Scheduler::subscribe(info->connection->get_poll_info().extract_pollable_fd(this));
|
Scheduler::subscribe(info->connection->get_poll_info().extract_pollable_fd(this));
|
||||||
@ -1206,11 +1209,6 @@ void Session::loop() {
|
|||||||
need_flush = true;
|
need_flush = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (can_destroy_auth_key()) {
|
|
||||||
if (main_connection_.connection) {
|
|
||||||
main_connection_.connection->destroy_key();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (need_flush) {
|
if (need_flush) {
|
||||||
connection_flush(&main_connection_);
|
connection_flush(&main_connection_);
|
||||||
need_flush = false;
|
need_flush = false;
|
||||||
|
Reference in New Issue
Block a user