Fix session_id type.
This commit is contained in:
parent
f29774acc6
commit
a395337265
@ -129,10 +129,10 @@ bool AuthData::is_valid_inbound_msg_id(uint64 message_id, double now) const {
|
||||
return server_time - 300 < id_time && id_time < server_time + 30;
|
||||
}
|
||||
|
||||
Status AuthData::check_packet(int64 session_id, uint64 message_id, double now, bool &time_difference_was_updated) {
|
||||
Status AuthData::check_packet(uint64 session_id, uint64 message_id, double now, bool &time_difference_was_updated) {
|
||||
// Client is to check that the session_id field in the decrypted message indeed equals to that of an active session
|
||||
// created by the client.
|
||||
if (get_session_id() != static_cast<uint64>(session_id)) {
|
||||
if (get_session_id() != session_id) {
|
||||
return Status::Error(PSLICE() << "Receive packet from different session " << session_id << " in session "
|
||||
<< get_session_id());
|
||||
}
|
||||
|
@ -245,7 +245,7 @@ class AuthData {
|
||||
|
||||
bool is_valid_inbound_msg_id(uint64 message_id, double now) const;
|
||||
|
||||
Status check_packet(int64 session_id, uint64 message_id, double now, bool &time_difference_was_updated);
|
||||
Status check_packet(uint64 session_id, uint64 message_id, double now, bool &time_difference_was_updated);
|
||||
|
||||
Status check_update(uint64 message_id) {
|
||||
return updates_duplicate_checker_.check(message_id);
|
||||
|
@ -54,7 +54,7 @@ class RawConnectionDefault final : public RawConnection {
|
||||
return transport_->get_type();
|
||||
}
|
||||
|
||||
size_t send_crypto(const Storer &storer, int64 session_id, int64 salt, const AuthKey &auth_key,
|
||||
size_t send_crypto(const Storer &storer, uint64 session_id, int64 salt, const AuthKey &auth_key,
|
||||
uint64 quick_ack_token) final {
|
||||
PacketInfo info;
|
||||
info.version = 2;
|
||||
@ -299,7 +299,7 @@ class RawConnectionHttp final : public RawConnection {
|
||||
return mtproto::TransportType{mtproto::TransportType::Http, 0, mtproto::ProxySecret()};
|
||||
}
|
||||
|
||||
size_t send_crypto(const Storer &storer, int64 session_id, int64 salt, const AuthKey &auth_key,
|
||||
size_t send_crypto(const Storer &storer, uint64 session_id, int64 salt, const AuthKey &auth_key,
|
||||
uint64 quick_ack_token) final {
|
||||
PacketInfo info;
|
||||
info.version = 2;
|
||||
|
@ -48,7 +48,7 @@ class RawConnection {
|
||||
|
||||
virtual bool can_send() const = 0;
|
||||
virtual TransportType get_transport_type() const = 0;
|
||||
virtual size_t send_crypto(const Storer &storer, int64 session_id, int64 salt, const AuthKey &auth_key,
|
||||
virtual size_t send_crypto(const Storer &storer, uint64 session_id, int64 salt, const AuthKey &auth_key,
|
||||
uint64 quick_ack_token) = 0;
|
||||
virtual uint64 send_no_crypto(const Storer &storer) = 0;
|
||||
|
||||
|
@ -110,20 +110,20 @@ ConnectionCreator::ClientInfo::ClientInfo() {
|
||||
mtproto_error_flood_control.add_limit(8, 3);
|
||||
}
|
||||
|
||||
int64 ConnectionCreator::ClientInfo::extract_session_id() {
|
||||
uint64 ConnectionCreator::ClientInfo::extract_session_id() {
|
||||
if (!session_ids_.empty()) {
|
||||
auto res = *session_ids_.begin();
|
||||
session_ids_.erase(session_ids_.begin());
|
||||
return res;
|
||||
}
|
||||
int64 res = 0;
|
||||
uint64 res = 0;
|
||||
while (res == 0) {
|
||||
res = Random::secure_int64();
|
||||
res = Random::secure_uint64();
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
void ConnectionCreator::ClientInfo::add_session_id(int64 session_id) {
|
||||
void ConnectionCreator::ClientInfo::add_session_id(uint64 session_id) {
|
||||
if (session_id != 0) {
|
||||
session_ids_.insert(session_id);
|
||||
}
|
||||
@ -934,7 +934,7 @@ void ConnectionCreator::client_create_raw_connection(Result<ConnectionData> r_co
|
||||
string debug_str, uint32 network_generation) {
|
||||
unique_ptr<mtproto::AuthData> auth_data;
|
||||
uint64 auth_data_generation{0};
|
||||
int64 session_id{0};
|
||||
uint64 session_id{0};
|
||||
if (check_mode) {
|
||||
auto it = clients_.find(hash);
|
||||
CHECK(it != clients_.end());
|
||||
@ -992,7 +992,7 @@ void ConnectionCreator::client_set_timeout_at(ClientInfo &client, double wakeup_
|
||||
}
|
||||
|
||||
void ConnectionCreator::client_add_connection(uint32 hash, Result<unique_ptr<mtproto::RawConnection>> r_raw_connection,
|
||||
bool check_flag, uint64 auth_data_generation, int64 session_id) {
|
||||
bool check_flag, uint64 auth_data_generation, uint64 session_id) {
|
||||
auto &client = clients_[hash];
|
||||
client.add_session_id(session_id);
|
||||
CHECK(client.pending_connections > 0);
|
||||
|
@ -142,8 +142,8 @@ class ConnectionCreator final : public NetQueryCallback {
|
||||
int32 next_delay_ = 1;
|
||||
};
|
||||
ClientInfo();
|
||||
int64 extract_session_id();
|
||||
void add_session_id(int64 session_id);
|
||||
uint64 extract_session_id();
|
||||
void add_session_id(uint64 session_id);
|
||||
|
||||
Backoff backoff;
|
||||
FloodControlStrict sanity_flood_control;
|
||||
@ -163,7 +163,7 @@ class ConnectionCreator final : public NetQueryCallback {
|
||||
DcId dc_id;
|
||||
bool allow_media_only{false};
|
||||
bool is_media{false};
|
||||
std::set<int64> session_ids_;
|
||||
std::set<uint64> session_ids_;
|
||||
unique_ptr<mtproto::AuthData> auth_data;
|
||||
uint64 auth_data_generation{0};
|
||||
};
|
||||
@ -223,7 +223,7 @@ class ConnectionCreator final : public NetQueryCallback {
|
||||
mtproto::TransportType transport_type, uint32 hash, string debug_str,
|
||||
uint32 network_generation);
|
||||
void client_add_connection(uint32 hash, Result<unique_ptr<mtproto::RawConnection>> r_raw_connection, bool check_flag,
|
||||
uint64 auth_data_generation, int64 session_id);
|
||||
uint64 auth_data_generation, uint64 session_id);
|
||||
void client_set_timeout_at(ClientInfo &client, double wakeup_at);
|
||||
|
||||
void on_proxy_resolved(Result<IPAddress> ip_address, bool dummy);
|
||||
|
Loading…
x
Reference in New Issue
Block a user