aboutsummaryrefslogtreecommitdiff
path: root/src/QXmppStun.h
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-09-28 10:53:04 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-09-28 10:53:04 +0000
commit0195fbe0f8840d01a95759ce9030a9fcdf8291e3 (patch)
tree21fa9078db5aca8c8826372d4a997e94c445b169 /src/QXmppStun.h
parent51801c4c0d511f5be61935665b20ae2cf1e2016b (diff)
downloadqxmpp-0195fbe0f8840d01a95759ce9030a9fcdf8291e3.tar.gz
improve ICE-UDP support:
- make QXmppIceConnection emit "disconnected()" if negotiation timeouts - handle IPv6 link-local addresses - improve error logging
Diffstat (limited to 'src/QXmppStun.h')
-rw-r--r--src/QXmppStun.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/QXmppStun.h b/src/QXmppStun.h
index 5adef33f..1b7c81be 100644
--- a/src/QXmppStun.h
+++ b/src/QXmppStun.h
@@ -134,9 +134,10 @@ private:
QXmppJingleCandidate remote;
QXmppJingleCandidate reflexive;
QByteArray transaction;
+ QUdpSocket *socket;
};
- Pair *addRemoteCandidate(const QHostAddress &host, quint16 port);
+ Pair *addRemoteCandidate(QUdpSocket *socket, const QHostAddress &host, quint16 port);
void debug(const QString &message, QXmppLogger::MessageType = QXmppLogger::DebugMessage);
qint64 writeStun(const QXmppStunMessage &message, QXmppStunSocket::Pair *pair);
@@ -152,7 +153,7 @@ private:
QString m_remoteUser;
QString m_remotePassword;
- QUdpSocket *m_socket;
+ QList<QUdpSocket*> m_sockets;
QTimer *m_timer;
// STUN server
@@ -192,6 +193,9 @@ signals:
// This signal is emitted once ICE negotiation succeeds.
void connected();
+ // This signal is emitted when ICE negotiation fails.
+ void disconnected();
+
// This signal is emitted when a data packet is received.
void datagramReceived(int component, const QByteArray &datagram);
@@ -204,8 +208,10 @@ signals:
private slots:
void slotConnected();
void slotDatagramReceived(const QByteArray &datagram);
+ void slotTimeout();
private:
+ QTimer *m_connectTimer;
bool m_controlling;
QMap<int, QXmppStunSocket*> m_components;
QString m_localUser;