X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcore%2Fidentserver.cpp;h=13b32fa6eb21648b6c417a1f1ba37d6e9f2d3640;hb=d7eb7e8b9c1304289da42b576cd054fa7422ab46;hp=08b1b67721cd8b048884a529c83d361642e24331;hpb=41b9d689945e784b160a25d12076600ff4b7ae90;p=quassel.git diff --git a/src/core/identserver.cpp b/src/core/identserver.cpp index 08b1b677..13b32fa6 100644 --- a/src/core/identserver.cpp +++ b/src/core/identserver.cpp @@ -32,7 +32,7 @@ IdentServer::IdentServer(bool strict, QObject *parent) : QObject(parent), _stric IdentServer::~IdentServer() = default; bool IdentServer::startListening() { - uint16_t port = 10113; + uint16_t port = Quassel::optionValue("ident-port").toUShort(); bool success = false; if (_v6server.listen(QHostAddress("::1"), port)) { @@ -96,31 +96,33 @@ void IdentServer::respond() { qint64 transactionId = _socketId; - if (socket->canReadLine()) { - QByteArray query = socket->readLine(); - if (query.endsWith("\r\n")) - query.chop(2); - else if (query.endsWith("\n")) - query.chop(1); + if (!socket->canReadLine()) { + return; + } - QList split = query.split(','); + QByteArray query = socket->readLine(); + if (query.endsWith("\r\n")) + query.chop(2); + else if (query.endsWith("\n")) + query.chop(1); - bool success = false; + QList split = query.split(','); - quint16 localPort; - if (!split.empty()) { - localPort = split[0].trimmed().toUShort(&success, 10); - } + bool success = false; - Request request{socket, localPort, query, transactionId, _requestId++}; - if (!success) { + quint16 localPort; + if (!split.empty()) { + localPort = split[0].trimmed().toUShort(&success, 10); + } + + 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); - } else if (!responseAvailable(request)) { - if (hasSocketsBelowId(transactionId)) { - _requestQueue.emplace_back(request); - } else { - responseUnavailable(request); - } } } }