diff --git a/src/im/message_engine.cpp b/src/im/message_engine.cpp index e1edc894a99603b68f54e363a43ae9351ef51aef..11dfca003a37972b6fb2e583c6436689d9fcac62 100644 --- a/src/im/message_engine.cpp +++ b/src/im/message_engine.cpp @@ -135,28 +135,37 @@ MessageEngine::trySend(decltype(MessageEngine::messages_)::iterator m) void MessageEngine::onMessageSent(MessageToken token, bool ok) { - RING_WARN("Message %llu: %s", token, ok ? "success" : "failure"); + RING_DBG("Message %llu: %s", token, ok ? "success" : "failure"); std::lock_guard<std::mutex> lock(messagesMutex_); auto f = messages_.find(token); if (f != messages_.end()) { if (f->second.status == MessageStatus::SENDING) { if (ok) { f->second.status = MessageStatus::SENT; + RING_DBG("Status SENT for message %llu", token); emitSignal<DRing::ConfigurationSignal::AccountMessageStatusChanged>(account_.getAccountID(), token, f->second.to, static_cast<int>(DRing::Account::MessageStates::SENT)); } else if (f->second.retried == MAX_RETRIES) { f->second.status = MessageStatus::FAILURE; + RING_DBG("Status FAILURE for message %llu", token); emitSignal<DRing::ConfigurationSignal::AccountMessageStatusChanged>(account_.getAccountID(), token, f->second.to, static_cast<int>(DRing::Account::MessageStates::FAILURE)); } else { f->second.status = MessageStatus::IDLE; + RING_DBG("Status IDLE for message %llu", token); // TODO: reschedule sending } } + else { + RING_DBG("Message %llu not SENDING", token); + } + } + else { + RING_DBG("Can't find message %llu", token); } } diff --git a/src/ringdht/ringaccount.cpp b/src/ringdht/ringaccount.cpp index 0843fe93c0eaae25d26e0d33264f01c8667ef3b1..c1042344525f4254a0cea8f127fb0f8cd220cee9 100644 --- a/src/ringdht/ringaccount.cpp +++ b/src/ringdht/ringaccount.cpp @@ -1424,8 +1424,15 @@ RingAccount::sendTextMessage(const std::string& to, const std::map<std::string, if (auto this_ = wshared.lock()) { // check expected message confirmation auto e = this_->sentMessages_.find(msg.id); + if (e == this_->sentMessages_.end()) { + RING_DBG("Message not found for %llu", token); + } + if (e->second.to != msg.from) { + RING_DBG("Unrelated text message : from %s != second %s", + msg.from.toString().c_str(), e->second.to.toString().c_str()); + } if (e == this_->sentMessages_.end() || e->second.to != msg.from) { - RING_WARN("Unrelated text message reply"); + RING_DBG("Unrelated text message reply for %llu", token); return true; } this_->sentMessages_.erase(e);