From 81065243f4a19f0fadb7aaf357870567a6acf7cf Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Mon, 2 May 2011 22:11:47 +0200 Subject: [PATCH] sipjreen: regressions--: handle server and port settings correctly --- src/sip/jreen/jabber.cpp | 29 ++++++++++++++++++++++++----- src/sip/jreen/jabber.h | 1 + 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/sip/jreen/jabber.cpp b/src/sip/jreen/jabber.cpp index 4d8c165fe..1f418e8e7 100644 --- a/src/sip/jreen/jabber.cpp +++ b/src/sip/jreen/jabber.cpp @@ -61,6 +61,8 @@ JabberPlugin::JabberPlugin() // general client setup m_client = new Jreen::Client( jid, m_currentPassword ); + setupClientHelper(); + m_client->registerStanzaExtension(new TomahawkSipMessageFactory); m_currentResource = QString::fromAscii( "tomahawk%1" ).arg( QString::number( qrand() % 10000 ) ); m_client->setResource( m_currentResource ); @@ -439,17 +441,34 @@ JabberPlugin::checkSettings() m_currentServer = TomahawkSettings::instance()->jabberServer(); m_currentPort = TomahawkSettings::instance()->jabberPort(); - Jreen::JID jid = Jreen::JID( accountName() ); - m_client->setJID( jid ); - m_client->setPassword( m_currentPassword ); - m_client->setServer( m_currentServer ); - m_client->setPort( m_currentPort ); + setupClientHelper(); qDebug() << Q_FUNC_INFO << "Updated settings"; connectPlugin( false ); } } +void JabberPlugin::setupClientHelper() +{ + Jreen::JID jid = Jreen::JID( m_currentUsername ); + + m_client->setJID( jid ); + m_client->setPassword( m_currentPassword ); + + if( !m_currentServer.isEmpty() ) + { + // set explicit server details + m_client->setServer( m_currentServer ); + m_client->setPort( m_currentPort ); + } + else + { + // let jreen find out server and port via jdns + m_client->setServer( jid.domain() ); + m_client->setPort( -1 ); + } +} + void JabberPlugin::addMenuHelper() { if( !m_menu ) diff --git a/src/sip/jreen/jabber.h b/src/sip/jreen/jabber.h index faa73c179..67e3722d6 100644 --- a/src/sip/jreen/jabber.h +++ b/src/sip/jreen/jabber.h @@ -93,6 +93,7 @@ private slots: void onNewAvatar( const QString &jid ); private: + void setupClientHelper(); void addMenuHelper(); void removeMenuHelper();