- Request request{socket, localPort, query, transactionId, _requestId++};
- if (!success) {
- responseUnavailable(request);
- } else if (!responseAvailable(request)) {
- if (hasSocketsBelowId(transactionId)) {
- _requestQueue.emplace_back(request);
- } else {
- responseUnavailable(request);
- }
- }
+ quint16 localPort = 0;
+ if (!split.empty()) {
+ localPort = split[0].trimmed().toUShort(&success, 10);
+ }
+
+ Request request{socket, localPort, query, transactionId, _requestId++};
+ if (!success) {
+ request.respondError("INVALID-PORT");
+ }
+ else if (responseAvailable(request)) {
+ // success
+ }
+ else if (lowestSocketId() < transactionId) {
+ _requestQueue.emplace_back(request);
+ }
+ else {
+ request.respondError("NO-USER");