Kopete - jabber: Allow SRV lookup for server+port

Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
pull/1/head
Slávek Banko 8 years ago
parent f3c0434e8d
commit d2625220de

@ -30,32 +30,33 @@ JabberConnector::JabberConnector ( TQObject *parent, const char */*name*/ )
mErrorCode = KNetwork::TDESocketBase::NoError;
mByteStream = new JabberByteStream ( this );
mSrvResolver = new SrvResolver;
connect ( mByteStream, TQT_SIGNAL ( connected () ), this, TQT_SLOT ( slotConnected () ) );
connect ( mByteStream, TQT_SIGNAL ( error ( int ) ), this, TQT_SLOT ( slotError ( int ) ) );
connect ( mSrvResolver, TQT_SIGNAL( resultsReady() ), this, TQT_SLOT( slotSrvLookup() ) );
}
JabberConnector::~JabberConnector ()
{
delete mByteStream;
delete mSrvResolver;
}
void JabberConnector::connectToServer ( const TQString &server )
{
kdDebug ( JABBER_DEBUG_GLOBAL ) << k_funcinfo << "Initiating connection to " << server << endl;
/*
* FIXME: we should use a SRV lookup to determine the
* actual server to connect to. As this is currently
* not supported yet, we're using setOptHostPort().
* For XMPP 1.0, we need to enable this!
*/
mErrorCode = KNetwork::TDESocketBase::NoError;
if( mHost.isEmpty() ) {
if( mSrvResolver->isBusy() ) {
mSrvResolver->stop();
}
mSrvResolver->resolve(server, "xmpp-client", "tcp");
return;
}
if ( !mByteStream->connect ( mHost, TQString::number ( mPort ) ) )
{
// Houston, we have a problem
@ -86,6 +87,20 @@ void JabberConnector::slotError ( int code )
}
void JabberConnector::slotSrvLookup()
{
if( mSrvResolver->failed() ) {
mErrorCode = KNetwork::TDESocketBase::LookupFailure;
emit error ();
return;
}
if( !mByteStream->connect( mSrvResolver->resultAddress().toString(), TQString::number( mSrvResolver->resultPort() ))) {
mErrorCode = mByteStream->socket()->error ();
emit error ();
}
}
int JabberConnector::errorCode ()
{

@ -22,6 +22,7 @@
#include <xmpp.h>
#include "jabberbytestream.h"
#include "libiris/cutestuff/network/srvresolver.h"
class ByteStream;
class KResolverEntry;
@ -53,6 +54,7 @@ public:
private slots:
void slotConnected ();
void slotError ( int );
void slotSrvLookup ();
private:
TQString mHost;
@ -60,6 +62,7 @@ private:
int mErrorCode;
JabberByteStream *mByteStream;
SrvResolver *mSrvResolver;
};

Loading…
Cancel
Save