[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kopete-devel
Subject:    [kopete-devel] Proof of concept: Oscar,
From:       Thiago Macieira <thiago.macieira () kdemail ! net>
Date:       2004-06-26 16:01:08
Message-ID: 200406261301.09291.thiago.macieira () kdemail ! net
[Download RAW message or body]

[Attachment #2 (multipart/signed)]

[Attachment #4 (multipart/mixed)]


Hello everyone,

this is just to let you know that I've ported three protocols to the new 
socket API. My Kopete is working with them right now. However, I 
haven't been able to test any filetransfers (and DCC Chat is disabled 
in the IRC plugin).

Also, when doing so, it has also helped me fix some bugs in my own code.

The name-resolution is truly asynchronous as expected and so is 
buffering.

Many thanks to mETz for porting most of Oscar to the new API already. 
You'll see that the remaining fix is quite, quite trivial.
-- 
  Thiago Macieira  -  Registered Linux user #65028
   thiago (AT) macieira (DOT) info
    ICQ UIN: 1967141   PGP/GPG: 0x6EF45358; fingerprint:
    E067 918B B660 DBD1 105C  966C 33F5 F005 6EF4 5358

["kopete-irc.diff" (text/x-diff)]

? irc/pixmaps/Makefile.in
Index: irc/libkirc/kirc.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirc.cpp,v
retrieving revision 1.122
diff -u -3 -p -r1.122 kirc.cpp
--- irc/libkirc/kirc.cpp	2 Jun 2004 02:32:09 -0000	1.122
+++ irc/libkirc/kirc.cpp	26 Jun 2004 15:56:49 -0000
@@ -32,13 +32,16 @@
 #include <kconfig.h>
 #include <klocale.h>
 #include <kstandarddirs.h>
-#include <kextsock.h>
+#include <kbufferedsocket.h>
+#include <kresolver.h>		// for KResolver::InternetFamily
 
 #include "kircfunctors.h"
 #include "ksslsocket.h"
 
 #include "kirc.h"
 
+using namespace KNetwork;
+
 /* Please note that the regular expression "[\\r\\n]*$" is used in a \
                QString::replace statement many times.
  * This gets rid of trailing \r\n, \r, \n, and \n\r characters.
  */
@@ -105,21 +108,21 @@ void KIRC::setUseSSL( bool useSSL )
 
 		m_useSSL = useSSL;
 
+		m_sock = new KBufferedSocket;
+		m_sock->setFamily(KResolver::InternetFamily);
 		if( m_useSSL )
 		{
-			m_sock = new KSSLSocket;
-			m_sock->setSocketFlags( KExtendedSocket::inetSocket );
-		}
-		else
-		{
-			m_sock = new KExtendedSocket;
-			m_sock->setSocketFlags( KExtendedSocket::inputBufferedSocket | \
KExtendedSocket::inetSocket ); +#if 0
+			m_sock->setSocketDevice(new KSSLSocketDevice());
+#else
+			kdWarning() << "SSL not operational yet" << endl;
+#endif
 		}
 
-		QObject::connect(m_sock, SIGNAL(closed(int)), this, SLOT(slotConnectionClosed()));
+		QObject::connect(m_sock, SIGNAL(closed()), this, SLOT(slotConnectionClosed()));
 		QObject::connect(m_sock, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
-		QObject::connect(m_sock, SIGNAL(connectionSuccess()), this, \
                SLOT(slotConnected()));
-		QObject::connect(m_sock, SIGNAL(connectionFailed(int)), this, SLOT(error(int)));
+		QObject::connect(m_sock, SIGNAL(connected(const KResolverEntry&)), this, \
SLOT(slotConnected())); +		QObject::connect(m_sock, SIGNAL(gotError(int)), this, \
SLOT(error(int)));  }
 }
 
@@ -144,17 +147,11 @@ void KIRC::connectToServer(const QString
 	m_Port = port;
 
 	kdDebug(14120) << "Trying to connect to server " << m_Host << ":" << m_Port << \
                endl;
-	kdDebug(14120) << "Sock status: " << m_sock->socketStatus() << endl;
-
-	if( !m_sock->setAddress(m_Host, m_Port) )
-		kdDebug(14120) << k_funcinfo << "setAddress failed. Status:  " << \
                m_sock->socketStatus() << endl;
-
-	if( m_sock->lookup() ) // necessary to avoid QDns
-		kdDebug(14120) << k_funcinfo << "lookup() failed. Status: " << \
m_sock->socketStatus() << endl; +	kdDebug(14120) << "Sock status: " << \
m_sock->state() << endl;  
-	if( m_sock->startAsyncConnect() == 0 )
+	if( m_sock->connect(m_Host, QString::number(m_Port) ) )
 	{
-		kdDebug(14120) << k_funcinfo << "Success!. Status: " << m_sock->socketStatus() << \
endl; +		kdDebug(14120) << k_funcinfo << "Success!. Status: " << m_sock->state() << \
endl;  setStatus(Connecting);
 
 		//If we don't get a reply within 15 seconds, give up
@@ -162,7 +159,7 @@ void KIRC::connectToServer(const QString
 	}
 	else
 	{
-		kdDebug(14120) << k_funcinfo << "Failed. Status: " << m_sock->socketStatus() << \
endl; +		kdDebug(14120) << k_funcinfo << "Failed. Status: " << m_sock->state() << \
endl;  setStatus(Disconnected);
 	}
 }
@@ -174,7 +171,6 @@ void KIRC::slotAuthFailed()
 	{
 		setStatus(Disconnected);
 		m_sock->close();
-		m_sock->reset();
 		emit connectionTimeout();
 	}
 }
@@ -198,24 +194,24 @@ void KIRC::slotConnected()
 
 void KIRC::slotConnectionClosed()
 {
-	kdDebug(14120) << k_funcinfo << "Connection Closed - local status: " << m_status << \
" sock status: " << m_sock->socketStatus() << endl; +	kdDebug(14120) << k_funcinfo << \
"Connection Closed - local status: " << m_status << " sock status: " << \
m_sock->state() << endl;  if(m_status == Closing)
 		emit successfulQuit();
 
 	if(m_status!=Disconnected)
 		setStatus(Disconnected);
-	m_sock->reset();
 }
 
 void KIRC::error(int errCode)
 {
+	if (errCode == KSocketBase::WouldBlock)
+		// ignore non-fatal error
+		return;
+
 	kdDebug(14120) << k_funcinfo << "Socket error: " << errCode << endl;
-	if (m_sock->socketStatus () != KExtendedSocket::connecting)
-	{
-		// Connection in progress.. This is a signal fired wrong
-		setStatus(Disconnected);
-		m_sock->reset();
-	}
+
+	setStatus(Disconnected);
+	m_sock->close();
 }
 
 void KIRC::setVersionString(const QString &newString)
@@ -316,7 +312,7 @@ void KIRC::slotReadyRead()
 	// close the socket unexpectedly
 	bool parseSuccess;
 
-	if( m_sock->socketStatus() == KExtendedSocket::connected && m_sock->canReadLine())
+	if( m_sock->state() == KBufferedSocket::Connected && m_sock->canReadLine())
 	{
 		KIRCMessage msg = KIRCMessage::parse(this, defaultCodec, &parseSuccess);
 		if(parseSuccess)
@@ -374,7 +370,7 @@ void KIRC::slotReadyRead()
 		QTimer::singleShot( 0, this, SLOT( slotReadyRead() ) );
 	}
 
-	if(m_sock->socketStatus()!=KExtendedSocket::connected)
+	if(m_sock->state() != KBufferedSocket::Connected)
 		error();
 }
 
@@ -396,7 +392,7 @@ void KIRC::showInfoDialog()
 {
 	if( m_useSSL )
 	{
-		static_cast<KSSLSocket*>( m_sock )->showInfoDialog();
+	  //static_cast<KSSLSocket*>( m_sock )->showInfoDialog();
 	}
 }
 
Index: irc/libkirc/kirc.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirc.h,v
retrieving revision 1.77
diff -u -3 -p -r1.77 kirc.h
--- irc/libkirc/kirc.h	5 Jun 2004 17:12:50 -0000	1.77
+++ irc/libkirc/kirc.h	26 Jun 2004 15:56:49 -0000
@@ -115,7 +115,7 @@ public:
 	void setSourceString(const QString &sourceString);
 	void connectToServer(const QString &host, Q_UINT16 port, const QString &nickname, \
bool useSSL = false);  
-	KExtendedSocket *socket()
+	KNetwork::KBufferedSocket *socket()
 		{ return m_sock; };
 
 	EngineStatus status() const
@@ -445,7 +445,7 @@ private:
 	QTextCodec *defaultCodec;
 	QTimer *m_connectTimer;
 
-	KExtendedSocket *m_sock;
+	KNetwork::KBufferedSocket *m_sock;
 };
 
 #endif // KIRC_H
Index: irc/libkirc/kirc_commands.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirc_commands.cpp,v
retrieving revision 1.3
diff -u -3 -p -r1.3 kirc_commands.cpp
--- irc/libkirc/kirc_commands.cpp	14 May 2004 00:37:27 -0000	1.3
+++ irc/libkirc/kirc_commands.cpp	26 Jun 2004 15:56:49 -0000
@@ -19,12 +19,14 @@
 
 #include <qtimer.h>
 
-#include <kextsock.h>
+#include <kbufferedsocket.h>
 
 #include "kircfunctors.h"
 #include "kopetemessage.h"
 #include "kirc.h"
 
+using namespace KNetwork;
+
 void KIRC::registerCommands()
 {
 //	The following order is based on the RFC2812.
@@ -122,7 +124,6 @@ void KIRC::quitIRC(const QString &reason
 	{
 		setStatus(Disconnected);
 		m_sock->close();
-		m_sock->reset();
 	}
 	else
 	{
@@ -134,13 +135,11 @@ void KIRC::quitIRC(const QString &reason
 
 void KIRC::quitTimeout()
 {
-	if(	m_sock->socketStatus() > KExtendedSocket::nothing &&
-		m_sock->socketStatus() < KExtendedSocket::done &&
+	if(	m_sock->state() != KBufferedSocket::Idle &&
 		m_status == Closing)
 	{
 		setStatus(Disconnected);
 		m_sock->close();
-		m_sock->reset();
 	}
 }
 
Index: irc/libkirc/kirc_ctcp.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirc_ctcp.cpp,v
retrieving revision 1.10
diff -u -3 -p -r1.10 kirc_ctcp.cpp
--- irc/libkirc/kirc_ctcp.cpp	15 Jun 2004 08:03:06 -0000	1.10
+++ irc/libkirc/kirc_ctcp.cpp	26 Jun 2004 15:56:49 -0000
@@ -17,14 +17,22 @@
     *************************************************************************
 */
 
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>		// for ntohl
+#include <sys/time.h>		// for gettimeofday
+
 #include "kirctransferhandler.h"
 #include "kirc.h"
 
-#include <kextsock.h>
+#include <kbufferedsocket.h>
+#include <ksocketaddress.h>
 
 #include <qfileinfo.h>
 #include <qregexp.h>
 
+using namespace KNetwork;
+
 void KIRC::registerCtcp()
 {
 //	CTCP Queries
@@ -113,8 +121,7 @@ bool KIRC::CtcpQuery_clientInfo(const KI
 void KIRC::CtcpRequest_dcc(const QString &nickname, const QString &fileName, uint \
port, KIRCTransfer::Type type)  {
 	if(	m_status != Connected ||
-		m_sock->localAddress() == 0 ||
-		m_sock->localAddress()->nodeName() == QString::null)
+		m_sock->localAddress().nodeName() == QString::null)
 		return;
 
 	switch( type )
@@ -123,7 +130,7 @@ void KIRC::CtcpRequest_dcc(const QString
 		writeCtcpQueryMessage(nickname, QString::null,
 			QString::fromLatin1("DCC"),
 			KIRC::join( QString::fromLatin1("CHAT"), QString::fromLatin1("chat"),
-				m_sock->localAddress()->nodeName(), QString::number(port)
+				m_sock->localAddress().nodeName(), QString::number(port)
 			)
 		);
 		break;
@@ -135,19 +142,15 @@ void KIRC::CtcpRequest_dcc(const QString
 
 		KIRCTransferServer *server = KIRCTransferHandler::self()->createServer(this, \
nickname, type, fileName, file.size());  
-		QString ip = m_sock->localAddress()->nodeName();
-		QRegExp reg("^(\\d{1,3}).(\\d{1,3}).(\\d{1,3}).(\\d{1,3})$");
-		if (!reg.exactMatch(ip))
+		KInetSocketAddress addr = m_sock->localAddress().asInet();
+		if (!addr.ipVersion() != 4)
 		{
-			kdDebug(14120) << "Not an ipv4:" << ip << endl;
+			kdDebug(14120) << "Not an ipv4:" << addr.toString() << endl;
 			return;
 		}
 
-		// FIXME: This is very an ugly way to do it
-		QString ipNumber = QString::number(	(Q_UINT32)reg.cap(1).toUShort()*(256*256*256)+
-							reg.cap(2).toUShort()*(256*256)+
-							reg.cap(3).toUShort()*256+
-							reg.cap(4).toUShort());
+		QString ipNumber = QString::number(ntohl(addr.ipAddress().IPv4Addr()));
+
 		kdDebug(14120) << "Starting DCC file outgoing transfer." << endl;
 
 		writeCtcpQueryMessage(nickname, QString::null,
@@ -177,14 +180,15 @@ bool KIRC::CtcpQuery_dcc(const KIRCMessa
 		 */
 		bool okayHost, okayPort;
 		// should ctctMsg.arg(1) be tested?
-		QHostAddress address(ctcpMsg.arg(2).toUInt(&okayHost));
+		KIpAddress ip(htonl(ctcpMsg.arg(2).toUInt(&okayHost)));
 		unsigned int port = ctcpMsg.arg(3).toUInt(&okayPort);
 		if (okayHost && okayPort)
 		{
 			kdDebug(14120) << "Starting DCC chat window." << endl;
+			KInetSocketAddress address(ip, port);
 			KIRCTransferHandler::self()->createClient(
 				this, msg.nickFromPrefix(),
-				address, port,
+				address,
 				KIRCTransfer::Chat );
 			return true;
 		}
@@ -202,15 +206,16 @@ bool KIRC::CtcpQuery_dcc(const KIRCMessa
 		 */
 		bool okayHost, okayPort, okaySize;
 //		QFileInfo realfile(msg.arg(1));
-		QHostAddress address(ctcpMsg.arg(2).toUInt(&okayHost));
+		KIpAddress ip(htonl(ctcpMsg.arg(2).toUInt(&okayHost)));
 		unsigned int port = ctcpMsg.arg(3).toUInt(&okayPort);
 		unsigned int size = ctcpMsg.arg(4).toUInt(&okaySize);
 		if (okayHost && okayPort && okaySize)
 		{
 			kdDebug(14120) << "Starting DCC send file transfert." << endl;
+			KInetSocketAddress address(ip, port);
 			KIRCTransferHandler::self()->createClient(
 				this, msg.nickFromPrefix(),
-				address, port,
+				address,
 				KIRCTransfer::FileIncoming,
 				msg.arg(1), size );
 			return true;
Index: irc/libkirc/kircmessage.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kircmessage.cpp,v
retrieving revision 1.20
diff -u -3 -p -r1.20 kircmessage.cpp
--- irc/libkirc/kircmessage.cpp	14 May 2004 02:45:14 -0000	1.20
+++ irc/libkirc/kircmessage.cpp	26 Jun 2004 15:56:49 -0000
@@ -18,7 +18,7 @@
 #include <kdebug.h>
 #include <klocale.h>
 #include <kmessagebox.h>
-#include <kextsock.h>
+#include <kbufferedsocket.h>
 
 #include "kopetemessage.h"
 
@@ -195,12 +195,11 @@ KIRCMessage KIRCMessage::parse(KIRC *eng
 
 	if( engine->socket()->canReadLine() )
 	{
-		QCString raw( engine->socket()->bytesAvailable()+1 );
-		Q_LONG length = engine->socket()->readLine(raw.data(), raw.count());
+		QCString raw = engine->socket()->readLine();
+		Q_LONG length = raw.length();
 
-		if( length > -1 )
+		if( length > 0 )
 		{
-			raw.resize( length );
 			raw.replace("\r\n",""); //remove the trailling \r\n if any(there must be in fact)
 
 			kdDebug(14121) << "<< " << raw << endl;
Index: irc/libkirc/kirctransfer.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirctransfer.cpp,v
retrieving revision 1.10
diff -u -3 -p -r1.10 kirctransfer.cpp
--- irc/libkirc/kirctransfer.cpp	15 Jun 2004 19:00:20 -0000	1.10
+++ irc/libkirc/kirctransfer.cpp	26 Jun 2004 15:56:49 -0000
@@ -16,14 +16,17 @@
 */
 
 #include <kdebug.h>
-#include <kextsock.h>
 #include <klocale.h>
+#include <kbufferedsocket.h>
+#include <ksocketaddress.h>
 
 #include <qfile.h>
 #include <qtimer.h>
 
 #include "kirctransfer.h"
 
+using namespace KNetwork;
+
 KIRCTransfer::KIRCTransfer(	KIRC *engine, QString nick,// QString nick_peer_adress
 				Type type,
 				QObject *parent, const char *name )
@@ -50,7 +53,7 @@ KIRCTransfer::KIRCTransfer(	KIRC *engine
 }
 
 KIRCTransfer::KIRCTransfer(	KIRC *engine, QString nick,// QString nick_peer_adress
-				QHostAddress hostAdress, Q_UINT16 port, // put this in a QVariant ?
+				const KSocketAddress& peer,
 				KIRCTransfer::Type type,
 				QString fileName, Q_UINT32 fileSize, // put this in a QVariant ?
 				QObject *parent, const char *name )
@@ -61,7 +64,7 @@ KIRCTransfer::KIRCTransfer(	KIRC *engine
 	  m_file(0), m_fileName(fileName), m_fileSize(fileSize), m_fileSizeCur(0), \
m_fileSizeAck(0),  m_receivedBytes(0), m_receivedBytesLimit(0), m_sentBytes(0), \
m_sentBytesLimit(0)  {
-	setSocket(new KExtendedSocket(hostAdress.toString(), port));
+	setSocket(new KBufferedSocket(peer.nodeName(), peer.serviceName()));
 }
 /*
 KIRCTransfer::KIRCTransfer(	KIRC *engine, QString nick,// QString nick_peer_adress
@@ -104,12 +107,13 @@ KIRCTransfer::Status KIRCTransfer::statu
 
 void KIRCTransfer::slotError( int error )
 {
-	// Connection in progress.. This is a signal fired wrong
-	if (m_socket->socketStatus () != KExtendedSocket::connecting)
-	{
-		abort(KExtendedSocket::strError(m_socket->status(), m_socket->systemError()));
-//		closeSocket();
-	}
+	if (error == KSocketBase::WouldBlock)
+		// ignore non-fatal error
+		return;
+
+	// FIXME with string messages!
+	abort(i18n("Connection to IRC server closed"));
+//	closeSocket();
 }
 
 bool KIRCTransfer::initiate()
@@ -141,7 +145,7 @@ bool KIRCTransfer::initiate()
 //		this, SLOT(slotConnectionClosed()));
 //	connect(m_socket, SIGNAL(delayedCloseFinished()),
 //		this, SLOT(slotConnectionClosed()));
-	connect(m_socket, SIGNAL(error(int)), // FIXME: connection failed: No such signal \
KExtendedSocket::error(int) +	connect(m_socket, SIGNAL(gotError(int)), 
 		this, SLOT(slotError(int)));
 
 	switch( m_type )
@@ -175,8 +179,7 @@ bool KIRCTransfer::initiate()
 		break;
 	}
 
-//	if(status()==Idle)
-	if(m_socket->status()==KExtendedSocket::nothing)
+	if(m_socket->state() == KBufferedSocket::Idle)
 		m_socket->connect();
 
 	m_socket->enableRead(true);
@@ -195,7 +198,7 @@ bool KIRCTransfer::initiate()
 	return true;
 }
 
-bool KIRCTransfer::setSocket( KExtendedSocket *socket )
+bool KIRCTransfer::setSocket( KBufferedSocket *socket )
 {
 	if (!m_socket)
 	{
Index: irc/libkirc/kirctransfer.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirctransfer.h,v
retrieving revision 1.9
diff -u -3 -p -r1.9 kirctransfer.h
--- irc/libkirc/kirctransfer.h	14 Jun 2004 17:59:47 -0000	1.9
+++ irc/libkirc/kirctransfer.h	26 Jun 2004 15:56:49 -0000
@@ -26,7 +26,10 @@
 
 class KIRC;
 
-class KExtendedSocket;
+namespace KNetwork {
+  class KBufferedSocket;
+  class KSocketAddress;
+}
 
 class QFile;
 class QTextCodec;
@@ -59,7 +62,7 @@ public:
 			QObject *parent = 0L, const char *name = 0L );
 
 	KIRCTransfer(	KIRC *engine, QString nick,// QString nick_peer_adress,
-			QHostAddress peer_address, Q_UINT16 peer_port,
+			const KNetwork::KSocketAddress& peer,
 			KIRCTransfer::Type type,
 			QObject *parent = 0L, const char *name = 0L );
 
@@ -69,7 +72,7 @@ public:
 			QObject *parent = 0L, const char *name = 0L );
 
 	KIRCTransfer(	KIRC *engine, QString nick,// QString nick_peer_adress,
-			QHostAddress peer_address, Q_UINT16 peer_port,
+			const KNetwork::KSocketAddress& peer,
 			KIRCTransfer::Type type,
 			QString fileName, Q_UINT32 fileSize,
 			QObject *parent = 0L, const char *name = 0L );
@@ -115,7 +118,7 @@ public:
 	unsigned long fileSize() const
 		{ return m_fileSize; }
 public slots:
-	bool setSocket( KExtendedSocket *socket );
+	bool setSocket( KNetwork::KBufferedSocket *socket );
 	void closeSocket();
 
 	void setCodec( QTextCodec *codec );
@@ -159,7 +162,7 @@ protected:
 	QString		m_nick;
 
 	Type		m_type;
-	KExtendedSocket *m_socket;
+	KNetwork::KBufferedSocket *m_socket;
 	bool		m_initiated;
 
 	// Text member data
Index: irc/libkirc/kirctransferhandler.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirctransferhandler.cpp,v
retrieving revision 1.7
diff -u -3 -p -r1.7 kirctransferhandler.cpp
--- irc/libkirc/kirctransferhandler.cpp	15 Jun 2004 19:00:20 -0000	1.7
+++ irc/libkirc/kirctransferhandler.cpp	26 Jun 2004 15:56:49 -0000
@@ -17,7 +17,9 @@
 
 #include <kglobal.h>
 #include <klocale.h>
-#include <kextsock.h>
+#include <kbufferedsocket.h>
+#include <kserversocket.h>
+#include <ksocketaddress.h>
 
 #include <qfile.h>
 #include <qregexp.h>
@@ -27,6 +29,7 @@
 
 #include "kirctransferhandler.h"
 
+using namespace KNetwork;
 
 KIRCTransferHandler *KIRCTransferHandler::self()
 {
@@ -64,13 +67,13 @@ KIRCTransferServer *KIRCTransferHandler:
 
 KIRCTransfer *KIRCTransferHandler::createClient(
 	KIRC *engine, QString nick,// QString nick_peer_adress,
-	QHostAddress peer_address, Q_UINT16 peer_port,
+	const KSocketAddress& peer,
 	KIRCTransfer::Type type,
 	QString fileName, Q_UINT32 fileSize )
 {
 	KIRCTransfer *client = new KIRCTransfer(
 		engine, nick,// QString nick_peer_adress,
-		peer_address, peer_port,
+		peer,
 		type,
 		fileName, fileSize,
 		this );
Index: irc/libkirc/kirctransferhandler.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirctransferhandler.h,v
retrieving revision 1.6
diff -u -3 -p -r1.6 kirctransferhandler.h
--- irc/libkirc/kirctransferhandler.h	15 Jun 2004 19:00:21 -0000	1.6
+++ irc/libkirc/kirctransferhandler.h	26 Jun 2004 15:56:49 -0000
@@ -18,15 +18,16 @@
 #ifndef KIRCTRANSFERHANDLER_H
 #define KIRCTRANSFERHANDLER_H
 
-#include <qhostaddress.h>
-
 #include "kirctransfer.h"
 #include "kirctransferserver.h"
 
 class QFile;
 class QTextCodec;
 
-class KExtendedSocket;
+namespace KNetwork {
+  class KServerSocket;
+  class KSocketAddress;
+}
 
 class KIRCTransferHandler
 	: public QObject
@@ -45,7 +46,7 @@ public:
 
 	KIRCTransfer *createClient(
 		KIRC *engine, QString nick,// QString nick_peer_adress,
-		QHostAddress peer_address, Q_UINT16 peer_port,
+		const KNetwork::KSocketAddress& peer,
 		KIRCTransfer::Type type,
 		QString file = QString::null, Q_UINT32 fileSize = 0 );
 
Index: irc/libkirc/kirctransferserver.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirctransferserver.cpp,v
retrieving revision 1.4
diff -u -3 -p -r1.4 kirctransferserver.cpp
--- irc/libkirc/kirctransferserver.cpp	15 Jun 2004 20:16:16 -0000	1.4
+++ irc/libkirc/kirctransferserver.cpp	26 Jun 2004 15:56:49 -0000
@@ -16,11 +16,16 @@
 */
 
 #include <kdebug.h>
-#include <kextsock.h>
+#include <kserversocket.h>
+#include <kbufferedsocket.h>
+#include <kresolver.h>		// for KResolver::InternetFamily
 
 #include "kirctransferhandler.h"
 
 #include "kirctransferserver.h"
+
+using namespace KNetwork;
+
 /*
 KIRCTransferServer::KIRCTransferServer( QObject *parent, const char *name )
 	: QObject( parent, name ),
@@ -68,37 +73,27 @@ bool KIRCTransferServer::initServer()
 		QObject::connect(this, SIGNAL(incomingNewTransfer(KIRCTransfer *)),
 				KIRCTransferHandler::self(), SIGNAL(transferCreated(KIRCTransfer *)));
 
-		m_socket = new KExtendedSocket();
-
-//		m_socket->setHost(m_socket->localAddress()->nodeName());
-		if (!m_socket->setPort(m_port))
-			kdDebug(14120) << k_funcinfo << "Failed to set port to" << m_port << endl;
-		m_socket->setSocketFlags(KExtendedSocket::noResolve
-					|KExtendedSocket::passiveSocket
-					|KExtendedSocket::inetSocket );
-
-		if (!m_socket->setTimeout(2*60)) // FIXME: allow configuration of this.
-			kdDebug(14120) << k_funcinfo << "Failed to set timeout." << endl;
+		m_socket = new KServerSocket(QString::number(m_port));
+		m_socket->setResolutionEnabled(false);
+		m_socket->setFamily(KResolver::InternetFamily);
 
+		m_socket->setTimeout(2*60*1000); // FIXME: allow configuration of this.
+		
 		QObject::connect(m_socket, SIGNAL(readyAccept()),
 				this, SLOT(readyAccept()));
-		QObject::connect(m_socket, SIGNAL(connectionFailed(int)),
-				this, SLOT(connectionFailed(int)));
-
-		m_socket->listen(m_backlog);
-		m_socket->setBlockingMode(true);
 
-		const KInetSocketAddress *localAddress = static_cast<const KInetSocketAddress \
                *>(m_socket->localAddress());
-		if (!localAddress)
+		if (!m_socket->listen(m_backlog))
 		{
-			kdDebug(14120) << k_funcinfo << "Not a KInetSocketAddress." << endl;
-			deleteLater();
+			delete m_socket;
+			m_socket = 0L;
 			return false;
 		}
+		m_socket->setBlocking(true);
 
-		m_port = localAddress->port();
+		KInetSocketAddress localAddress = m_socket->localAddress().asInet();
+		m_port = localAddress.port();
 	}
-	return (m_socket->socketStatus() != KExtendedSocket::error);
+	return true;
 }
 
 bool KIRCTransferServer::initServer( Q_UINT16 port, int backlog )
@@ -113,22 +108,16 @@ bool KIRCTransferServer::initServer( Q_U
 
 void KIRCTransferServer::readyAccept()
 {
-	KExtendedSocket *socket;
-	m_socket->accept( socket );
+	KBufferedSocket *socket = static_cast<KBufferedSocket*>(m_socket->accept());
+	if (socket == 0L)
+		return;
+
 	KIRCTransfer *transfer = new KIRCTransfer(m_engine, m_nick, m_type, m_fileName, \
m_fileSize);  transfer->setSocket(socket);
 	transfer->initiate();
 	emit incomingNewTransfer(transfer);
 }
 
-void KIRCTransferServer::connectionFailed(int error)
-{
-	if (error!=0)
-	{
-		kdDebug(14120) << k_funcinfo << "Connection failed with " << m_nick << endl;
-		deleteLater();
-	}
-}
 /*
 void KIRCTransfer::initClient()
 {
Index: irc/libkirc/kirctransferserver.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/irc/libkirc/kirctransferserver.h,v
retrieving revision 1.4
diff -u -3 -p -r1.4 kirctransferserver.h
--- irc/libkirc/kirctransferserver.h	15 Jun 2004 20:16:16 -0000	1.4
+++ irc/libkirc/kirctransferserver.h	26 Jun 2004 15:56:49 -0000
@@ -22,7 +22,9 @@
 
 #include <qobject.h>
 
-class KExtendedSocket;
+namespace KNetwork {
+  class KServerSocket;
+}
 
 class QFile;
 class QTextCodec;
@@ -54,10 +56,9 @@ signals:
 
 protected slots:
 	void readyAccept();
-	void connectionFailed(int error);
 
 private:
-	KExtendedSocket *	m_socket;
+	KNetwork::KServerSocket *m_socket;
 	Q_UINT16		m_port;
 	int			m_backlog;
 


["kopete-msn.diff" (text/x-diff)]

? msn/pixmaps/Makefile.in
Index: msn/msnaccount.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnaccount.cpp,v
retrieving revision 1.81
diff -u -3 -p -r1.81 msnaccount.cpp
--- msn/msnaccount.cpp	14 Jun 2004 11:42:57 -0000	1.81
+++ msn/msnaccount.cpp	26 Jun 2004 15:55:38 -0000
@@ -202,8 +202,8 @@ void MSNAccount::createNotificationServe
 		SLOT( slotCreateChat( const QString&, const QString&, const QString&, const \
QString&, const QString& ) ) );  QObject::connect( m_notifySocket, SIGNAL( startChat( \
const QString&, const QString& ) ),  SLOT( slotCreateChat( const QString&, const \
                QString& ) ) );
-	QObject::connect( m_notifySocket, SIGNAL( socketClosed( int ) ),
-		SLOT( slotNotifySocketClosed( int ) ) );
+	QObject::connect( m_notifySocket, SIGNAL( socketClosed() ),
+		SLOT( slotNotifySocketClosed() ) );
 	QObject::connect( m_notifySocket, SIGNAL( newContactList() ),
 		SLOT( slotNewContactList() ) );
 	QObject::connect( m_notifySocket, SIGNAL( receivedNotificationServer(const \
QString&, uint )  ),  @@ -493,7 +493,7 @@ void MSNAccount::slotNotifySocketStatusC
 	// static_cast<MSNProtocol *>( protocol() )->slotNotifySocketStatusChanged( status \
);  }
 
-void MSNAccount::slotNotifySocketClosed( int  state  )
+void MSNAccount::slotNotifySocketClosed()
 {
 	kdDebug( 14140 ) << k_funcinfo << endl;
 
@@ -503,12 +503,15 @@ void MSNAccount::slotNotifySocketClosed(
 	myself()->setOnlineStatus( MSNProtocol::protocol()->FLN );
 	if ( m_badpassword )
 		connect();
+
+#if 0
 	else if ( state == 0x10 ) // connection died unexpectedly
 	{
 		KMessageBox::queuedMessageBox( Kopete::UI::Global::mainWidget(), \
KMessageBox::Error , i18n( "The connection with the MSN server was lost \
unexpectedly.\n"  "If you cannot reconnect now, the server might be down. In that \
case, please try again later." ),  i18n( "Connection Lost - MSN Plugin" ), \
KMessageBox::Notify );  }
+#endif
 
 	// kdDebug( 14140 ) << "MSNAccount::slotNotifySocketClosed - done" << endl;
 }
Index: msn/msnaccount.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnaccount.h,v
retrieving revision 1.26
diff -u -3 -p -r1.26 msnaccount.h
--- msn/msnaccount.h	14 Jun 2004 11:42:57 -0000	1.26
+++ msn/msnaccount.h	26 Jun 2004 15:55:38 -0000
@@ -131,7 +131,7 @@ private slots:
 
 	// notifySocket related
 	void slotStatusChanged( const KopeteOnlineStatus &status );
-	void slotNotifySocketClosed( int state );
+	void slotNotifySocketClosed();
 	void slotNotifySocketStatusChanged( MSNSocket::OnlineStatus status );
 	void slotPublicNameChanged(const QString& publicName);
 	void slotContactRemoved(const QString& handle, const QString& list,  uint group );
Index: msn/msnfiletransfersocket.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnfiletransfersocket.cpp,v
retrieving revision 1.28
diff -u -3 -p -r1.28 msnfiletransfersocket.cpp
--- msn/msnfiletransfersocket.cpp	28 Mar 2004 04:29:00 -0000	1.28
+++ msn/msnfiletransfersocket.cpp	26 Jun 2004 15:55:38 -0000
@@ -24,7 +24,8 @@
 
 // kde
 #include <kdebug.h>
-#include <kextendedsocket.h>
+#include <kserversocket.h>
+#include <kbufferedsocket.h>
 #include <kfiledialog.h>
 #include <klocale.h>
 
@@ -33,6 +34,8 @@
 #include "msnmessagemanager.h"
 #include "msnswitchboardsocket.h"
 
+using namespace KNetwork;
+
 MSNFileTransferSocket::MSNFileTransferSocket(const QString &handle, KopeteContact \
*c,bool incoming, QObject* parent)  : MSNSocket(parent) , MSNInvitation(incoming, \
MSNFileTransferSocket::applicationID() , i18n("File Transfer - MSN Plugin"))  {
@@ -43,7 +46,7 @@ MSNFileTransferSocket::MSNFileTransferSo
 	m_contact=c;
 	ready=true;
 
-	QObject::connect( this, SIGNAL( socketClosed( int ) ), this, SLOT( \
slotSocketClosed( ) ) ); +	QObject::connect( this, SIGNAL( socketClosed() ), this, \
SLOT( slotSocketClosed() ) );  QObject::connect( this, SIGNAL( blockRead( const \
QByteArray & ) ), this, SLOT(slotReadBlock( const QByteArray & ) ) );  }
 
@@ -176,17 +179,15 @@ void MSNFileTransferSocket::setKopeteTra
 
 void MSNFileTransferSocket::listen(int port)
 {
-	m_server = new KExtendedSocket();
+	m_server = new KServerSocket();
 
 	QObject::connect( m_server, SIGNAL(readyAccept()), this,  \
                SLOT(slotAcceptConnection()));
-	m_server->setPort(port);
-	m_server->setSocketFlags(  KExtendedSocket::noResolve
-                            | KExtendedSocket::passiveSocket
-                            | KExtendedSocket::anySocket);
-	int listenResult = m_server->listen(1);
+	m_server->setAddress(QString::number(port));
 
+	kdDebug(14140) << "MSNFileTransferSocket::listen: about to listen"<<endl;
+	bool listenResult = m_server->listen(1);
 	kdDebug(14140) << "MSNFileTransferSocket::listen: result: "<<  listenResult <<endl;
-	m_server->setBlockingMode(true);
+	m_server->setBlocking(true);
 	QTimer::singleShot( 60000, this, SLOT(slotTimer()) );
 	kdDebug(14140) << "MSNFileTransferSocket::listen done" <<endl;
 }
Index: msn/msnfiletransfersocket.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnfiletransfersocket.h,v
retrieving revision 1.13
diff -u -3 -p -r1.13 msnfiletransfersocket.h
--- msn/msnfiletransfersocket.h	28 Jul 2003 10:51:07 -0000	1.13
+++ msn/msnfiletransfersocket.h	26 Jun 2004 15:55:38 -0000
@@ -25,7 +25,9 @@
 
 class QFile;
 
-class KExtendedSocket;
+namespace KNetwork {
+  class KServerSocket;
+}
 
 class KopeteTransfer;
 class KopeteFileTransferInfo;
@@ -105,7 +107,7 @@ private:
 	QString m_fileName;
 	KopeteTransfer* m_kopeteTransfer;
 	QFile *m_file ;
-	KExtendedSocket *m_server;
+	KNetwork::KServerSocket *m_server;
 
 	bool ready;
 
Index: msn/msnnotifysocket.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnnotifysocket.cpp,v
retrieving revision 1.143
diff -u -3 -p -r1.143 msnnotifysocket.cpp
--- msn/msnnotifysocket.cpp	24 Jun 2004 20:34:06 -0000	1.143
+++ msn/msnnotifysocket.cpp	26 Jun 2004 15:55:39 -0000
@@ -86,7 +86,7 @@ void MSNNotifySocket::disconnect()
 
 	// the socket is not connected yet, so I should force the signals
 	if ( onlineStatus() == Disconnected || onlineStatus() == Connecting )
-		emit socketClosed(-1);
+		emit socketClosed();
 	else
 		MSNSocket::disconnect();
 }
Index: msn/msnsocket.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnsocket.cpp,v
retrieving revision 1.88
diff -u -3 -p -r1.88 msnsocket.cpp
--- msn/msnsocket.cpp	14 Jun 2004 11:42:57 -0000	1.88
+++ msn/msnsocket.cpp	26 Jun 2004 15:55:39 -0000
@@ -26,13 +26,17 @@
 #include <qtimer.h>
 
 #include <kdebug.h>
-#include <kextsock.h>
+#include <kbufferedsocket.h>
+#include <kserversocket.h>
+#include <kresolver.h>
 #include <klocale.h>
 #include <kmessagebox.h>
 #include <kurl.h>
 
 #include "kopeteuiglobal.h"
 
+using namespace KNetwork;
+
 MSNSocket::MSNSocket(QObject* parent)  : QObject (parent)
 {
 	m_onlineStatus = Disconnected;
@@ -71,15 +75,12 @@ void MSNSocket::connect( const QString &
 	m_waitBlockSize = 0;
 	m_buffer = Buffer( 0 );
 
-	m_lookupStatus = Processing;
-
 	//m_sendQueue.clear();
 
 	m_server = server;
 	m_port = port;
-	m_socket = new KExtendedSocket( server, port, KExtendedSocket::bufferedSocket );
+	m_socket = new KBufferedSocket( server, QString::number(port) );
 	 //can this prevent the kopete frezee? \
                (http://lists.kde.org/?l=kopete-devel&m=107117795131722&w=2)
-	m_socket->setBlockingMode( false );
 
 	m_socket->enableRead( true );
 
@@ -89,28 +90,15 @@ void MSNSocket::connect( const QString &
 
 	QObject::connect( m_socket, SIGNAL( readyRead() ),             this, SLOT( \
slotDataReceived() ) );  QObject::connect( m_socket, SIGNAL( readyWrite() ),          \
                this, SLOT( slotReadyWrite() ) );
-	QObject::connect( m_socket, SIGNAL( lookupFinished( int ) ),   this, SLOT( \
                slotLookupFinished( int ) ) );
-	QObject::connect( m_socket, SIGNAL( connectionSuccess() ),     this, SLOT( \
                slotConnectionSuccess() ) );
-	QObject::connect( m_socket, SIGNAL( connectionFailed( int ) ), this, SLOT( \
                slotSocketError( int ) ) );
-	QObject::connect( m_socket, SIGNAL( closed( int ) ),           this, SLOT( \
slotSocketClosed( int ) ) ); +	QObject::connect( m_socket, SIGNAL( hostFound() ),	    \
this, SLOT( slotHostFound() ) ); +	QObject::connect( m_socket, SIGNAL( connected( \
const KResolverEntry&) ), this, SLOT( slotConnectionSuccess() ) ); \
+	QObject::connect( m_socket, SIGNAL( gotError( int ) ),         this, SLOT( \
slotSocketError( int ) ) ); +	QObject::connect( m_socket, SIGNAL( closed( ) ),        \
this, SLOT( slotSocketClosed( ) ) );  
 	aboutToConnect();
 
-	// FIXME KDE4?
-	// Ideally we want to the full connection to MSN to be handled async,
-	// but due to some design issues in QDns this fails if people with
-	// dialup connections start Kopete before their internet connection.
-	// The workaround from TrollTech is to not use QDns, but use the
-	// libc gethostbyname call instead. The sync calls in KExtendedSocket
-	// use this, only the async lookup uses DNS.
-	// This is slightly annoying as it blocks the GUI for the duration
-	// of the DNS lookup, but properly configured systems will hardly
-	// notice that. Besides, there's nothing we can do about it...
-	// For Qt 4/KDE 4 we can hopefully leave the lookup to the socket
-	// again and remove the manual lookup call. This cannot be fixed
-	// in Qt 3 unfortunately.
-	m_socket->lookup();
-	m_socket->startAsyncConnect();
+	// start the asynchronous connection
+	m_socket->connect();
 }
 
 void MSNSocket::disconnect()
@@ -118,7 +106,7 @@ void MSNSocket::disconnect()
 	if ( m_socket )
 		m_socket->closeNow();
 	else
-		slotSocketClosed( -1 );
+		slotSocketClosed();
 }
 
 void MSNSocket::aboutToConnect()
@@ -149,13 +137,12 @@ void MSNSocket::slotSocketError( int err
 {
 	kdDebug( 14140 ) << k_funcinfo << "Error: " << error << endl;
 
-	m_socket->cancelAsyncConnect();
-
 	QString errormsg = i18n( "There was an error while connecting to the MSN \
                server.\nError message:\n" );
-	if ( m_lookupStatus == Failed )
-		errormsg += i18n( "Unable to lookup %1" ).arg( m_socket->host() );
+	if ( error == KSocketBase::LookupFailure )
+		errormsg += i18n( "Unable to lookup %1" ).arg( m_socket->peerResolver().nodeName() \
);  else
-		errormsg += KExtendedSocket::strError( error, m_socket->systemError() );
+	        // FIXME when there is a method to show up error strings!
+          	errormsg += i18n( "Error %1" ).arg( m_socket->error() );
 
 	//delete m_socket;
 	m_socket->deleteLater();
@@ -164,7 +151,7 @@ void MSNSocket::slotSocketError( int err
 	setOnlineStatus( Disconnected );
 	emit connectionFailed();
 	//like if the socket is closed
-	emit socketClosed( -1 );
+	emit socketClosed();
 
 	KMessageBox::queuedMessageBox( Kopete::UI::Global::mainWidget(), \
KMessageBox::Error, errormsg, i18n( "MSN Plugin" ) );  }
@@ -541,22 +528,18 @@ QString MSNSocket::unescape( const QStri
 
 void MSNSocket::slotConnectionSuccess()
 {
-	m_socket->setBlockingMode( false );
 	//kdDebug( 14140 ) << k_funcinfo << endl;
 	doneConnect();
 }
 
-void MSNSocket::slotLookupFinished( int count )
+void MSNSocket::slotHostFound()
 {
-	if ( count == 0 )
-		m_lookupStatus = Failed;
-	else
-		m_lookupStatus = Success;
+        // nothing to do
 }
 
-void MSNSocket::slotSocketClosed( int state )
+void MSNSocket::slotSocketClosed()
 {
-	kdDebug( 14140 ) << k_funcinfo << "Socket closed. State: 0x" << QString::number( \
state, 16 ) << endl; +        kdDebug( 14140 ) << k_funcinfo << "Socket closed. " << \
endl;  
 	if ( !m_socket ||  m_onlineStatus == Disconnected )
 	{
@@ -571,7 +554,7 @@ void MSNSocket::slotSocketClosed( int st
 	m_socket->deleteLater();
 	m_socket = 0L;
 
-	emit socketClosed( state );
+	emit socketClosed();
 }
 
 // Used in MSNFileTransferSocket
@@ -592,7 +575,7 @@ void MSNSocket::sendBytes( const QByteAr
 	m_socket->enableWrite( true );
 }
 
-bool MSNSocket::accept( KExtendedSocket *server )
+bool MSNSocket::accept( KServerSocket *server )
 {
 	if ( m_socket )
 	{
@@ -600,11 +583,8 @@ bool MSNSocket::accept( KExtendedSocket 
 		return false;
 	}
 
-	int acceptResult = server->accept( m_socket );
-	kdDebug( 14140 ) << k_funcinfo << "Result: " << acceptResult << ", m_socket: " << \
                m_socket << endl;
-
-	if ( acceptResult )
-		return false;
+	m_socket = static_cast<KBufferedSocket*>(server->accept());
+	kdDebug( 14140 ) << k_funcinfo << "Result: " << (m_socket != 0L) << ", m_socket: " \
<< m_socket << endl;  
 	if ( !m_socket )
 		return false;
@@ -614,19 +594,15 @@ bool MSNSocket::accept( KExtendedSocket 
 	m_id = 0;
 	//m_lastId = 0;
 	m_waitBlockSize = 0;
-	m_lookupStatus = Processing;
 
-	m_socket->setBlockingMode( false );
+	m_socket->setBlocking( false );
 	m_socket->enableRead( true );
 	m_socket->enableWrite( true );
-	m_socket->setBufferSize( -1, -1 );
 
 	QObject::connect( m_socket, SIGNAL( readyRead() ),             this, SLOT( \
slotDataReceived() ) );  QObject::connect( m_socket, SIGNAL( readyWrite() ),          \
                this, SLOT( slotReadyWrite() ) );
-	QObject::connect( m_socket, SIGNAL( closed( int ) ),           this, SLOT( \
                slotSocketClosed( int ) ) );
-	QObject::connect( m_socket, SIGNAL( connectionFailed( int ) ), this, SLOT( \
                slotSocketError( int ) ) );
-
-	m_socket->setSocketFlags( KExtendedSocket::anySocket | \
KExtendedSocket::inputBufferedSocket | KExtendedSocket::outputBufferedSocket ); \
+	QObject::connect( m_socket, SIGNAL( closed() ),                this, SLOT( \
slotSocketClosed() ) ); +	QObject::connect( m_socket, SIGNAL( gotError( int ) ),      \
this, SLOT( slotSocketError( int ) ) );  
 	doneConnect();
 	return true;
@@ -637,17 +613,17 @@ QString MSNSocket::getLocalIP()
 	if ( !m_socket )
 		return QString::null;
 
-	const KSocketAddress *address = m_socket->localAddress();
-	if ( !address  )
-	{
-		kdWarning( 14140 ) << k_funcinfo << "IP not found!" << endl;
-		return QString::null;
-	}
+	const KSocketAddress address = m_socket->localAddress();
+
+	QString ip = address.nodeName();
 
-	QString ip = address->pretty();
+#if 0
+	// FIXME. Addresses can never have -
+	// Why is this here?
 	ip = ip.replace( "-", " " );
 	if ( ip.contains( " " ) )
 		ip = ip.left( ip.find( " " ) );
+#endif
 
 	kdDebug( 14140 ) << k_funcinfo << "IP: " << ip  <<endl;
 	//delete address;
Index: msn/msnsocket.h
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnsocket.h,v
retrieving revision 1.27
diff -u -3 -p -r1.27 msnsocket.h
--- msn/msnsocket.h	14 Jun 2004 11:42:57 -0000	1.27
+++ msn/msnsocket.h	26 Jun 2004 15:55:39 -0000
@@ -24,7 +24,10 @@
 #include <qobject.h>
 #include <qvaluelist.h>
 
-class KExtendedSocket;
+namespace KNetwork {
+  class KBufferedSocket;
+  class KServerSocket;
+}
 
 /**
  * @author Martijn Klingens <klingens@kde.org>
@@ -117,7 +120,7 @@ signals:
 	/**
 	 * The connection was closed
 	 */
-	void socketClosed( int );
+	void socketClosed();
 
 	/**
 	 * The socket just sent a command from the queue. This signal is used in
@@ -182,7 +185,7 @@ protected:
 	 * Used in MSNFileTransferSocket
 	 */
 	virtual void bytesReceived( const QByteArray & );
-	bool accept( KExtendedSocket * );
+	bool accept( KNetwork::KServerSocket * );
 	void sendBytes( const QByteArray &data );
 
 	const QString &server() { return m_server; }
@@ -209,14 +212,14 @@ private slots:
 	/**
 	 * Sets m_lookupProgress to 'Finished' if count > 0 or 'Failed' if count = 0.
 	 */
-	void slotLookupFinished( int count );
+	void slotHostFound( );
 
 	/**
 	 * Check if new lines of data are available and process the first line
 	 */
 	void slotReadLine();
 
-	void slotSocketClosed( int state );
+	void slotSocketClosed();
 
 protected slots:
 	virtual void slotReadyWrite();
@@ -249,18 +252,13 @@ private:
 	 */
 	void parseLine( const QString &str );
 
-	KExtendedSocket *m_socket;
+	KNetwork::KBufferedSocket *m_socket;
 	OnlineStatus m_onlineStatus;
 
 	QString m_server;
 	uint m_port;
 
 	/**
-	 * Contains the status of the Lookup process.
-	 */
-	LookupStatus m_lookupStatus;
-
-	/**
 	 * The size of the requested block for block-based reads
 	 */
 	uint m_waitBlockSize;
Index: msn/msnswitchboardsocket.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/msn/msnswitchboardsocket.cpp,v
retrieving revision 1.100
diff -u -3 -p -r1.100 msnswitchboardsocket.cpp
--- msn/msnswitchboardsocket.cpp	10 Jun 2004 10:13:53 -0000	1.100
+++ msn/msnswitchboardsocket.cpp	26 Jun 2004 15:55:39 -0000
@@ -84,7 +84,7 @@ void MSNSwitchBoardSocket::connectToSwit
 	QObject::connect( this, SIGNAL( onlineStatusChanged( MSNSocket::OnlineStatus ) ),
 		this, SLOT( slotOnlineStatusChanged( MSNSocket::OnlineStatus ) ) );
 
-	QObject::connect( this, SIGNAL( socketClosed( int ) ),
+	QObject::connect( this, SIGNAL( socketClosed( ) ),
 		this, SLOT( slotSocketClosed( ) ) );
 
 	connect( server, port );


["kopete-oscar.diff" (text/x-diff)]

Index: oscarsocket/oscarconnection.cpp
===================================================================
RCS file: /home/kde/kdenetwork/kopete/protocols/oscar/oscarsocket/oscarconnection.cpp,v
retrieving revision 1.29
diff -u -3 -p -r1.29 oscarconnection.cpp
--- oscarsocket/oscarconnection.cpp	15 Jun 2004 18:46:47 -0000	1.29
+++ oscarsocket/oscarconnection.cpp	26 Jun 2004 15:55:08 -0000
@@ -214,6 +214,11 @@ void OscarConnection::slotSocketClosed()
 
 void OscarConnection::slotSocketError(int errornum)
 {
+#ifndef USE_KEXTSOCK
+	if (errornum == KNetwork::KSocketBase::WouldBlock)
+		return;
+#endif
+
 	kdDebug(14150) << k_funcinfo << "SOCKET ERROR: " << errornum << endl;
 	mSocket->closeNow();
 	emit socketError(connectionName(), errornum);

[Attachment #10 (application/pgp-signature)]

_______________________________________________
kopete-devel mailing list
kopete-devel@kde.org
https://mail.kde.org/mailman/listinfo/kopete-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic