aboutsummaryrefslogtreecommitdiff
path: root/src/base
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2015-08-25 11:23:27 +0200
committerJeremy Lainé <jeremy.laine@m4x.org>2015-08-25 11:23:27 +0200
commit5cce6f583e1691ea98ac7c13ebbef8103f578404 (patch)
treeb578ea03c2d75b447b83ecc58e521af701391666 /src/base
parent37908ac7aa0a45921786aace4438353e2c822ff9 (diff)
downloadqxmpp-5cce6f583e1691ea98ac7c13ebbef8103f578404.tar.gz
add a QXmppIceTransport base class
Diffstat (limited to 'src/base')
-rw-r--r--src/base/QXmppStun.cpp10
-rw-r--r--src/base/QXmppStun_p.h20
2 files changed, 25 insertions, 5 deletions
diff --git a/src/base/QXmppStun.cpp b/src/base/QXmppStun.cpp
index 30fa1786..14c9b76a 100644
--- a/src/base/QXmppStun.cpp
+++ b/src/base/QXmppStun.cpp
@@ -1157,7 +1157,7 @@ void QXmppStunTransaction::retry()
/// \param parent
QXmppTurnAllocation::QXmppTurnAllocation(QObject *parent)
- : QXmppLoggable(parent),
+ : QXmppIceTransport(parent),
m_relayedPort(0),
m_turnPort(0),
m_channelNumber(0x4000),
@@ -2776,3 +2776,11 @@ void QXmppIceConnection::slotTimeout()
emit disconnected();
}
+QXmppIceTransport::QXmppIceTransport(QObject *parent)
+ : QXmppLoggable(parent)
+{
+}
+
+QXmppIceTransport::~QXmppIceTransport()
+{
+}
diff --git a/src/base/QXmppStun_p.h b/src/base/QXmppStun_p.h
index 76801ade..e8e13019 100644
--- a/src/base/QXmppStun_p.h
+++ b/src/base/QXmppStun_p.h
@@ -72,13 +72,28 @@ private:
int m_tries;
};
+class QXMPP_EXPORT QXmppIceTransport : public QXmppLoggable
+{
+ Q_OBJECT
+
+public:
+ QXmppIceTransport(QObject *parent = 0);
+ ~QXmppIceTransport();
+
+ virtual qint64 writeDatagram(const QByteArray &data, const QHostAddress &host, quint16 port) = 0;
+
+signals:
+ /// \brief This signal is emitted when a data packet is received.
+ void datagramReceived(const QByteArray &data, const QHostAddress &host, quint16 port);
+};
+
/// \internal
///
/// The QXmppTurnAllocation class represents a TURN allocation as defined
/// by RFC 5766 Traversal Using Relays around NAT (TURN).
///
-class QXMPP_EXPORT QXmppTurnAllocation : public QXmppLoggable
+class QXMPP_EXPORT QXmppTurnAllocation : public QXmppIceTransport
{
Q_OBJECT
@@ -108,9 +123,6 @@ signals:
/// \brief This signal is emitted once TURN allocation succeeds.
void connected();
- /// \brief This signal is emitted when a data packet is received.
- void datagramReceived(const QByteArray &data, const QHostAddress &host, quint16 port);
-
/// \brief This signal is emitted when TURN allocation fails.
void disconnected();