summaryrefslogtreecommitdiff
authorzecke <zecke>2003-11-21 09:37:54 (UTC)
committer zecke <zecke>2003-11-21 09:37:54 (UTC)
commit10ae99b2cbbf3e24f3568367a85b3b2d6c0fa289 (patch) (side-by-side diff)
treeac9c821ddeef8d6e05024206e19b7dc780791611
parent99ecb210f893437068060194b031cb37b94a0398 (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/transferserver.cpp4
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() );