From c52b181c3382a754b10f0457763e0364463592ad Mon Sep 17 00:00:00 2001 From: Aaron Seigo Date: Fri, 21 Nov 2014 13:14:20 +0100 Subject: close if we don't get a connection in the first two seconds --- resource/listener.cpp | 13 +++++++++++++ resource/listener.h | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/resource/listener.cpp b/resource/listener.cpp index efdfe3e..e68b3d4 100644 --- a/resource/listener.cpp +++ b/resource/listener.cpp @@ -3,6 +3,7 @@ #include "common/console.h" #include +#include Listener::Listener(const QString &resource, QObject *parent) : QObject(parent), @@ -23,6 +24,8 @@ Listener::Listener(const QString &resource, QObject *parent) if (m_server->isListening()) { Console::main()->log(QString("Listening on %1").arg(m_server->serverName())); } + + QTimer::singleShot(2000, this, SLOT(checkConnections())); } Listener::~Listener() @@ -68,4 +71,14 @@ void Listener::clientDropped() break; } } + + checkConnections(); +} + +void Listener::checkConnections() +{ + if (m_connections.isEmpty()) { + m_server->close(); + emit noClients(); + } } diff --git a/resource/listener.h b/resource/listener.h index 79c7ba5..2fbd75c 100644 --- a/resource/listener.h +++ b/resource/listener.h @@ -20,16 +20,22 @@ public: class Listener : public QObject { + Q_OBJECT + public: Listener(const QString &resourceName, QObject *parent = 0); ~Listener(); +Q_SIGNALS: + void noClients(); + public Q_SLOTS: void closeAllConnections(); private Q_SLOTS: void acceptConnection(); void clientDropped(); + void checkConnections(); private: QLocalServer *m_server; -- cgit v1.2.3