author | zecke <zecke> | 2003-11-21 09:37:54 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-11-21 09:37:54 (UTC) |
commit | 10ae99b2cbbf3e24f3568367a85b3b2d6c0fa289 (patch) (side-by-side diff) | |
tree | ac9c821ddeef8d6e05024206e19b7dc780791611 | |
parent | 99ecb210f893437068060194b031cb37b94a0398 (diff) | |
download | opie-10ae99b2cbbf3e24f3568367a85b3b2d6c0fa289.zip opie-10ae99b2cbbf3e24f3568367a85b3b2d6c0fa289.tar.gz opie-10ae99b2cbbf3e24f3568367a85b3b2d6c0fa289.tar.bz2 |
Fix bug 1219.
If not authorized no dtp is created
so 0x000000000->close is likely to fail.
lpotter something I think Qtopia suffers from as well
-rw-r--r-- | core/launcher/transferserver.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/core/launcher/transferserver.cpp b/core/launcher/transferserver.cpp index eea9f3a..9519d11 100644 --- a/core/launcher/transferserver.cpp +++ b/core/launcher/transferserver.cpp @@ -324,49 +324,51 @@ ServerPI::ServerPI( int socket, QObject *parent, const char* name ) state = Wait_USER; dtp = new ServerDTP( this ); connect( dtp, SIGNAL( completed() ), SLOT( dtpCompleted() ) ); connect( dtp, SIGNAL( failed() ), SLOT( dtpFailed() ) ); connect( dtp, SIGNAL( error( int ) ), SLOT( dtpError( int ) ) ); directory = QDir::currentDirPath(); static int p = 1024; while ( !serversocket || !serversocket->ok() ) { delete serversocket; serversocket = new ServerSocket( ++p, this ); } connect( serversocket, SIGNAL( newIncomming( int ) ), SLOT( newConnection( int ) ) ); } } ServerPI::~ServerPI() { close(); - dtp->close(); + + if ( dtp ) + dtp->close(); delete dtp; delete serversocket; } bool ServerPI::verifyAuthorised() { if ( !SyncAuthentication::isAuthorized(peerAddress()) ) { state = Forbidden; return FALSE; } return TRUE; } void ServerPI::connectionClosed() { // qDebug( "Debug: Connection closed" ); emit connectionClosed(this); } void ServerPI::send( const QString& msg ) { QTextStream os( this ); os << msg << endl; //qDebug( "Reply: %s", msg.latin1() ); |