diff --git a/threadloop.cpp b/threadloop.cpp index 5143a58..4800370 100644 --- a/threadloop.cpp +++ b/threadloop.cpp @@ -108,17 +108,17 @@ void do_thread_work(ThreadData *threadData) bool readSuccess = client->readFdIntoBuffer(); client->bufferToMqttPackets(packetQueueIn, client); + for (MqttPacket &packet : packetQueueIn) + { + packet.handle(); + } + if (!readSuccess) { client->setDisconnectReason("socket disconnect detected"); threadData->removeClient(client); continue; } - - for (MqttPacket &packet : packetQueueIn) - { - packet.handle(); - } } if ((cur_ev.events & EPOLLOUT) || ((cur_ev.events & EPOLLIN) && client->getSslWriteWantsRead())) {