mirror of
https://github.com/ars3niy/tdlib-purple
synced 2025-08-31 22:15:10 +00:00
Aded more paranoid null checks
This commit is contained in:
@@ -40,10 +40,9 @@ static bool isPhoneEqual(const std::string &n1, const std::string &n2)
|
|||||||
|
|
||||||
void TdAccountData::updateUser(TdUserPtr user)
|
void TdAccountData::updateUser(TdUserPtr user)
|
||||||
{
|
{
|
||||||
if (!user) {
|
if (!user)
|
||||||
purple_debug_warning(config::pluginId, "updateUser with null user info\n");
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
purple_debug_misc(config::pluginId, "Update user: %s '%s' '%s'\n", user->phone_number_.c_str(),
|
purple_debug_misc(config::pluginId, "Update user: %s '%s' '%s'\n", user->phone_number_.c_str(),
|
||||||
user->first_name_.c_str(), user->last_name_.c_str());
|
user->first_name_.c_str(), user->last_name_.c_str());
|
||||||
|
|
||||||
|
@@ -12,8 +12,10 @@ public:
|
|||||||
|
|
||||||
void operator()(td::td_api::updateAuthorizationState &update_authorization_state) const {
|
void operator()(td::td_api::updateAuthorizationState &update_authorization_state) const {
|
||||||
purple_debug_misc(config::pluginId, "Incoming update: authorization state\n");
|
purple_debug_misc(config::pluginId, "Incoming update: authorization state\n");
|
||||||
m_owner->m_lastAuthState = update_authorization_state.authorization_state_->get_id();
|
if (update_authorization_state.authorization_state_) {
|
||||||
td::td_api::downcast_call(*update_authorization_state.authorization_state_, *m_owner->m_authUpdateHandler);
|
m_owner->m_lastAuthState = update_authorization_state.authorization_state_->get_id();
|
||||||
|
td::td_api::downcast_call(*update_authorization_state.authorization_state_, *m_owner->m_authUpdateHandler);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void operator()(td::td_api::updateConnectionState &connectionUpdate) const {
|
void operator()(td::td_api::updateConnectionState &connectionUpdate) const {
|
||||||
@@ -54,7 +56,7 @@ public:
|
|||||||
|
|
||||||
void operator()(td::td_api::updateUserChatAction &updateChatAction) const {
|
void operator()(td::td_api::updateUserChatAction &updateChatAction) const {
|
||||||
purple_debug_misc(config::pluginId, "Incoming update: chat action %d\n",
|
purple_debug_misc(config::pluginId, "Incoming update: chat action %d\n",
|
||||||
updateChatAction.action_->get_id());
|
updateChatAction.action_ ? updateChatAction.action_->get_id() : 0);
|
||||||
m_owner->handleUserChatAction(updateChatAction);
|
m_owner->handleUserChatAction(updateChatAction);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -463,6 +465,9 @@ void PurpleTdClient::showMessage(const char *purpleUserName, const td::td_api::m
|
|||||||
|
|
||||||
void PurpleTdClient::onIncomingMessage(td::td_api::object_ptr<td::td_api::message> message)
|
void PurpleTdClient::onIncomingMessage(td::td_api::object_ptr<td::td_api::message> message)
|
||||||
{
|
{
|
||||||
|
if (!message)
|
||||||
|
return;
|
||||||
|
|
||||||
const td::td_api::chat *chat = m_data.getChat(message->chat_id_);
|
const td::td_api::chat *chat = m_data.getChat(message->chat_id_);
|
||||||
if (!chat) {
|
if (!chat) {
|
||||||
purple_debug_warning(config::pluginId, "Received message with unknown chat id %lld\n",
|
purple_debug_warning(config::pluginId, "Received message with unknown chat id %lld\n",
|
||||||
@@ -527,6 +532,11 @@ void PurpleTdClient::updateUserStatus(uint32_t userId, td::td_api::object_ptr<td
|
|||||||
|
|
||||||
void PurpleTdClient::updateUser(td::td_api::object_ptr<td::td_api::user> user)
|
void PurpleTdClient::updateUser(td::td_api::object_ptr<td::td_api::user> user)
|
||||||
{
|
{
|
||||||
|
if (!user) {
|
||||||
|
purple_debug_warning(config::pluginId, "updateUser with null user info\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
bool hasPhoneNumber = !user->phone_number_.empty();
|
bool hasPhoneNumber = !user->phone_number_.empty();
|
||||||
int32_t userId = user->id_;
|
int32_t userId = user->id_;
|
||||||
m_data.updateUser(std::move(user));
|
m_data.updateUser(std::move(user));
|
||||||
|
Reference in New Issue
Block a user