aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppStun.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2011-03-22 17:59:05 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2011-03-22 17:59:05 +0000
commit8b374ced5df8ef63e522135430b3b4d6505a3fa0 (patch)
treea671f01bae21cfe1e1c65bf7252ac14565a2737b /src/QXmppStun.h
parent8ff3480e76d07d58f49870b28309627161ecf5c5 (diff)
downloadqxmpp-8b374ced5df8ef63e522135430b3b4d6505a3fa0.tar.gz
QXmppIceConnection : integrate support for using TURN relaying
Diffstat (limited to 'src/QXmppStun.h')
-rw-r--r--src/QXmppStun.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/QXmppStun.h b/src/QXmppStun.h
index 9378c43c..aecbcb1a 100644
--- a/src/QXmppStun.h
+++ b/src/QXmppStun.h
@@ -175,15 +175,17 @@ public:
QXmppTurnAllocation(QObject *parent = 0);
bool bind(const QHostAddress &address = QHostAddress::Any, quint16 port = 0);
+ void close();
QHostAddress relayedHost() const;
quint16 relayedPort() const;
+ AllocationState state() const;
void setServer(const QHostAddress &host, quint16 port = 3478);
- void setUsername(const QString &username);
+ void setUser(const QString &user);
void setPassword(const QString &password);
- void writeDatagram(const QByteArray &data, const QHostAddress &host, quint16 port);
+ qint64 writeDatagram(const QByteArray &data, const QHostAddress &host, quint16 port);
signals:
/// \brief This signal is emitted once TURN allocation succeeds.
@@ -242,6 +244,9 @@ public:
QXmppIceComponent(bool controlling, QObject *parent=0);
~QXmppIceComponent();
void setStunServer(const QHostAddress &host, quint16 port);
+ void setTurnServer(const QHostAddress &host, quint16 port);
+ void setTurnUser(const QString &user);
+ void setTurnPassword(const QString &password);
QList<QXmppJingleCandidate> localCandidates() const;
void setLocalUser(const QString &user);
@@ -268,7 +273,9 @@ public slots:
private slots:
void checkCandidates();
void checkStun();
+ void handleDatagram(const QByteArray &datagram, const QHostAddress &host, quint16 port, QUdpSocket *socket = 0);
void readyRead();
+ void turnConnected();
signals:
/// \brief This signal is emitted once ICE negotiation succeeds.
@@ -319,6 +326,10 @@ private:
quint16 m_stunPort;
QTimer *m_stunTimer;
int m_stunTries;
+
+ // TURN server
+ QXmppTurnAllocation *m_turnAllocation;
+ bool m_turnConfigured;
};
/// \brief The QXmppIceConnection class represents a set of UDP sockets
@@ -337,13 +348,18 @@ public:
QList<QXmppJingleCandidate> localCandidates() const;
QString localUser() const;
+ void setLocalUser(const QString &user);
QString localPassword() const;
+ void setLocalPassword(const QString &password);
void addRemoteCandidate(const QXmppJingleCandidate &candidate);
void setRemoteUser(const QString &user);
void setRemotePassword(const QString &password);
void setStunServer(const QHostAddress &host, quint16 port = 3478);
+ void setTurnServer(const QHostAddress &host, quint16 port = 3478);
+ void setTurnUser(const QString &user);
+ void setTurnPassword(const QString &password);
bool bind(const QList<QHostAddress> &addresses);
bool isConnected() const;
@@ -374,6 +390,10 @@ private:
QString m_localPassword;
QHostAddress m_stunHost;
quint16 m_stunPort;
+ QHostAddress m_turnHost;
+ quint16 m_turnPort;
+ QString m_turnUser;
+ QString m_turnPassword;
};
#endif