summaryrefslogtreecommitdiffstats
path: root/src/server/net/discoverylistener.h
diff options
context:
space:
mode:
authorsr2013-02-04 19:50:31 +0100
committersr2013-02-04 19:50:31 +0100
commit1a5709501f94014d41987b956338bb6424b9f90c (patch)
treed3b93fe8dc406bca56aff147ef5cc4cbf9ed6be0 /src/server/net/discoverylistener.h
parentTest (diff)
downloadpvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.gz
pvs2-1a5709501f94014d41987b956338bb6424b9f90c.tar.xz
pvs2-1a5709501f94014d41987b956338bb6424b9f90c.zip
Initial commit
Diffstat (limited to 'src/server/net/discoverylistener.h')
-rw-r--r--src/server/net/discoverylistener.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/server/net/discoverylistener.h b/src/server/net/discoverylistener.h
new file mode 100644
index 0000000..64d4351
--- /dev/null
+++ b/src/server/net/discoverylistener.h
@@ -0,0 +1,40 @@
+/*
+ * discoverylistener.h
+ *
+ * Created on: 25.01.2013
+ * Author: sr
+ */
+
+#ifndef DISCOVERYLISTENER_H_
+#define DISCOVERYLISTENER_H_
+
+#include <QtCore>
+#include <QUdpSocket>
+#include "../../shared/networkmessage.h"
+
+#define SD_PACKET_TABLE_SIZE 20000
+
+class DiscoveryListener : public QObject
+{
+ Q_OBJECT
+
+private:
+ QUdpSocket _socket;
+ NetworkMessage _packet;
+ int _counterResetPos;
+
+ quint8 _packetCounter[SD_PACKET_TABLE_SIZE]; // count packets per source address to ignore spammers
+
+protected:
+ void timerEvent(QTimerEvent* event);
+
+public:
+ DiscoveryListener();
+ virtual ~DiscoveryListener();
+
+private slots:
+ void onReadyRead();
+
+};
+
+#endif /* DISCOVERYLISTENER_H_ */