summaryrefslogtreecommitdiff
path: root/core/qws/transferserver.cpp
Unidiff
Diffstat (limited to 'core/qws/transferserver.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/qws/transferserver.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/core/qws/transferserver.cpp b/core/qws/transferserver.cpp
index 30bf438..daf63ec 100644
--- a/core/qws/transferserver.cpp
+++ b/core/qws/transferserver.cpp
@@ -285,37 +285,37 @@ ServerPI::ServerPI( int socket, QObject *parent , const char* name )
285 connect( this, SIGNAL( connectionClosed() ), SLOT( connectionClosed() ) ); 285 connect( this, SIGNAL( connectionClosed() ), SLOT( connectionClosed() ) );
286 286
287 passiv = FALSE; 287 passiv = FALSE;
288 for ( int i = 0; i < 4; i++ ) 288 for ( int i = 0; i < 4; i++ )
289 wait[i] = FALSE; 289 wait[i] = FALSE;
290 290
291 send( "220 Qtopia " QPE_VERSION " FTP Server" ); 291 send( "220 Qtopia " QPE_VERSION " FTP Server" );
292 state = Wait_USER; 292 state = Wait_USER;
293 293
294 dtp = new ServerDTP( this ); 294 dtp = new ServerDTP( this );
295 connect( dtp, SIGNAL( completed() ), SLOT( dtpCompleted() ) ); 295 connect( dtp, SIGNAL( completed() ), SLOT( dtpCompleted() ) );
296 connect( dtp, SIGNAL( failed() ), SLOT( dtpFailed() ) ); 296 connect( dtp, SIGNAL( failed() ), SLOT( dtpFailed() ) );
297 connect( dtp, SIGNAL( error( int ) ), SLOT( dtpError( int ) ) ); 297 connect( dtp, SIGNAL( error(int) ), SLOT( dtpError(int) ) );
298 298
299 299
300 directory = QDir::currentDirPath(); 300 directory = QDir::currentDirPath();
301 301
302 static int p = 1024; 302 static int p = 1024;
303 303
304 while ( !serversocket || !serversocket->ok() ) { 304 while ( !serversocket || !serversocket->ok() ) {
305 delete serversocket; 305 delete serversocket;
306 serversocket = new ServerSocket( ++p, this ); 306 serversocket = new ServerSocket( ++p, this );
307 } 307 }
308 connect( serversocket, SIGNAL( newIncomming( int ) ), 308 connect( serversocket, SIGNAL( newIncomming(int) ),
309 SLOT( newConnection( int ) ) ); 309 SLOT( newConnection(int) ) );
310 } 310 }
311} 311}
312 312
313ServerPI::~ServerPI() 313ServerPI::~ServerPI()
314{ 314{
315} 315}
316 316
317void ServerPI::connectionClosed() 317void ServerPI::connectionClosed()
318{ 318{
319 // qDebug( "Debug: Connection closed" ); 319 // qDebug( "Debug: Connection closed" );
320 delete this; 320 delete this;
321} 321}
@@ -1037,40 +1037,40 @@ void ServerPI::timerEvent( QTimerEvent * )
1037{ 1037{
1038 connectionClosed(); 1038 connectionClosed();
1039} 1039}
1040 1040
1041 1041
1042ServerDTP::ServerDTP( QObject *parent, const char* name) 1042ServerDTP::ServerDTP( QObject *parent, const char* name)
1043 : QSocket( parent, name ), mode( Idle ), createTargzProc( 0 ), 1043 : QSocket( parent, name ), mode( Idle ), createTargzProc( 0 ),
1044 retrieveTargzProc( 0 ), gzipProc( 0 ) 1044 retrieveTargzProc( 0 ), gzipProc( 0 )
1045{ 1045{
1046 1046
1047 connect( this, SIGNAL( connected() ), SLOT( connected() ) ); 1047 connect( this, SIGNAL( connected() ), SLOT( connected() ) );
1048 connect( this, SIGNAL( connectionClosed() ), SLOT( connectionClosed() ) ); 1048 connect( this, SIGNAL( connectionClosed() ), SLOT( connectionClosed() ) );
1049 connect( this, SIGNAL( bytesWritten( int ) ), SLOT( bytesWritten( int ) ) ); 1049 connect( this, SIGNAL( bytesWritten(int) ), SLOT( bytesWritten(int) ) );
1050 connect( this, SIGNAL( readyRead() ), SLOT( readyRead() ) ); 1050 connect( this, SIGNAL( readyRead() ), SLOT( readyRead() ) );
1051 1051
1052 gzipProc = new OProcess( this, "gzipProc" ); 1052 gzipProc = new OProcess( this, "gzipProc" );
1053 1053
1054 createTargzProc = new OProcess( QString("tar"), this, "createTargzProc"); 1054 createTargzProc = new OProcess( QString("tar"), this, "createTargzProc");
1055 createTargzProc->setWorkingDirectory( QDir::rootDirPath() ); 1055 createTargzProc->setWorkingDirectory( QDir::rootDirPath() );
1056 connect( createTargzProc, SIGNAL( processExited(OProcess *) ), SLOT( targzDone() ) ); 1056 connect( createTargzProc, SIGNAL( processExited(OProcess*) ), SLOT( targzDone() ) );
1057 1057
1058 QStringList args = "tar"; 1058 QStringList args = "tar";
1059 args += "-xv"; 1059 args += "-xv";
1060 retrieveTargzProc = new OProcess( args, this, "retrieveTargzProc" ); 1060 retrieveTargzProc = new OProcess( args, this, "retrieveTargzProc" );
1061 retrieveTargzProc->setWorkingDirectory( QDir::rootDirPath() ); 1061 retrieveTargzProc->setWorkingDirectory( QDir::rootDirPath() );
1062 connect( retrieveTargzProc, SIGNAL( processExited(OProcess *) ), 1062 connect( retrieveTargzProc, SIGNAL( processExited(OProcess*) ),
1063 SIGNAL( completed() ) ); 1063 SIGNAL( completed() ) );
1064 connect( retrieveTargzProc, SIGNAL( processExited(OProcess *) ), 1064 connect( retrieveTargzProc, SIGNAL( processExited(OProcess*) ),
1065 SLOT( extractTarDone() ) ); 1065 SLOT( extractTarDone() ) );
1066} 1066}
1067 1067
1068ServerDTP::~ServerDTP() 1068ServerDTP::~ServerDTP()
1069{ 1069{
1070 buf.close(); 1070 buf.close();
1071 file.close(); 1071 file.close();
1072 createTargzProc->kill(); 1072 createTargzProc->kill();
1073} 1073}
1074 1074
1075void ServerDTP::extractTarDone() 1075void ServerDTP::extractTarDone()
1076{ 1076{
@@ -1272,34 +1272,34 @@ void ServerDTP::readyRead()
1272 buf.writeBlock( s.data(), s.size() ); 1272 buf.writeBlock( s.data(), s.size() );
1273 } 1273 }
1274} 1274}
1275 1275
1276void ServerDTP::writeTargzBlock(OProcess *, char *buffer, int buflen) 1276void ServerDTP::writeTargzBlock(OProcess *, char *buffer, int buflen)
1277{ 1277{
1278 writeBlock( buffer, buflen ); 1278 writeBlock( buffer, buflen );
1279 qDebug("writeTargzBlock %d", buflen); 1279 qDebug("writeTargzBlock %d", buflen);
1280 if ( !createTargzProc->isRunning() ) { 1280 if ( !createTargzProc->isRunning() ) {
1281 qDebug("tar and gzip done"); 1281 qDebug("tar and gzip done");
1282 emit completed(); 1282 emit completed();
1283 mode = Idle; 1283 mode = Idle;
1284 disconnect( gzipProc, SIGNAL( receivedStdout(OProcess *, char *, int ) ), 1284 disconnect( gzipProc, SIGNAL( receivedStdout(OProcess*,char*,int) ),
1285 this, SLOT( writeTargzBlock(OProcess *, char *, int) ) ); 1285 this, SLOT( writeTargzBlock(OProcess*,char*,int) ) );
1286 } 1286 }
1287} 1287}
1288 1288
1289void ServerDTP::targzDone() 1289void ServerDTP::targzDone()
1290{ 1290{
1291 //qDebug("targz done"); 1291 //qDebug("targz done");
1292 disconnect( createTargzProc, SIGNAL( receivedStdout(OProcess *, char *, int) ), 1292 disconnect( createTargzProc, SIGNAL( receivedStdout(OProcess*,char*,int) ),
1293 this, SLOT( gzipTarBlock(OProcess *, char *, int) ) ); 1293 this, SLOT( gzipTarBlock(OProcess*,char*,int) ) );
1294 gzipProc->closeStdin(); 1294 gzipProc->closeStdin();
1295} 1295}
1296 1296
1297void ServerDTP::gzipTarBlock(OProcess *, char *buffer, int buflen) 1297void ServerDTP::gzipTarBlock(OProcess *, char *buffer, int buflen)
1298{ 1298{
1299 //qDebug("gzipTarBlock"); 1299 //qDebug("gzipTarBlock");
1300 if ( !gzipProc->isRunning() ) { 1300 if ( !gzipProc->isRunning() ) {
1301 //qDebug("auto start gzip proc"); 1301 //qDebug("auto start gzip proc");
1302 gzipProc->start(OProcess::NotifyOnExit, (OProcess::Communication) ( OProcess::Stdin | OProcess::Stdout )); 1302 gzipProc->start(OProcess::NotifyOnExit, (OProcess::Communication) ( OProcess::Stdin | OProcess::Stdout ));
1303 } 1303 }
1304 gzipProc->writeStdin( buffer, buflen ); 1304 gzipProc->writeStdin( buffer, buflen );
1305} 1305}
@@ -1329,40 +1329,40 @@ void ServerDTP::sendGzipFile( const QString &fn,
1329 const QStringList &archiveTargets ) 1329 const QStringList &archiveTargets )
1330{ 1330{
1331 mode = SendGzipFile; 1331 mode = SendGzipFile;
1332 file.setName( fn ); 1332 file.setName( fn );
1333 1333
1334 QStringList args = "tar"; 1334 QStringList args = "tar";
1335 args += "-cv"; 1335 args += "-cv";
1336 args += archiveTargets; 1336 args += archiveTargets;
1337 qDebug("sendGzipFile %s", args.join(" ").latin1() ); 1337 qDebug("sendGzipFile %s", args.join(" ").latin1() );
1338 createTargzProc->clearArguments( ); 1338 createTargzProc->clearArguments( );
1339 *createTargzProc << args; 1339 *createTargzProc << args;
1340 connect( createTargzProc, 1340 connect( createTargzProc,
1341 SIGNAL( receivedStdout(OProcess *, char *, int) ), SLOT( gzipTarBlock(OProcess *, char *, int) ) ); 1341 SIGNAL( receivedStdout(OProcess*,char*,int) ), SLOT( gzipTarBlock(OProcess*,char*,int) ) );
1342 1342
1343 gzipProc->clearArguments( ); 1343 gzipProc->clearArguments( );
1344 *gzipProc << "gzip"; 1344 *gzipProc << "gzip";
1345 connect( gzipProc, SIGNAL( receivedStdout(OProcess *, char *, int) ), 1345 connect( gzipProc, SIGNAL( receivedStdout(OProcess*,char*,int) ),
1346 SLOT( writeTargzBlock(OProcess *, char *, int) ) ); 1346 SLOT( writeTargzBlock(OProcess*,char*,int) ) );
1347} 1347}
1348 1348
1349void ServerDTP::gunzipDone() 1349void ServerDTP::gunzipDone()
1350{ 1350{
1351 qDebug("gunzipDone"); 1351 qDebug("gunzipDone");
1352 disconnect( gzipProc, SIGNAL( processExited() ), 1352 disconnect( gzipProc, SIGNAL( processExited() ),
1353 this, SLOT( gunzipDone() ) ); 1353 this, SLOT( gunzipDone() ) );
1354 retrieveTargzProc->closeStdin(); 1354 retrieveTargzProc->closeStdin();
1355 disconnect( gzipProc, SIGNAL( receivedStdout(OProcess *, char *, int) ), 1355 disconnect( gzipProc, SIGNAL( receivedStdout(OProcess*,char*,int) ),
1356 this, SLOT( tarExtractBlock(OProcess *, char *, int) ) ); 1356 this, SLOT( tarExtractBlock(OProcess*,char*,int) ) );
1357} 1357}
1358 1358
1359void ServerDTP::tarExtractBlock(OProcess *, char *buffer, int buflen) 1359void ServerDTP::tarExtractBlock(OProcess *, char *buffer, int buflen)
1360{ 1360{
1361 qDebug("tarExtractBlock"); 1361 qDebug("tarExtractBlock");
1362 if ( !retrieveTargzProc->isRunning() ) { 1362 if ( !retrieveTargzProc->isRunning() ) {
1363 qDebug("auto start ungzip proc"); 1363 qDebug("auto start ungzip proc");
1364 if ( !retrieveTargzProc->start(OProcess::NotifyOnExit, OProcess::Stdin) ) 1364 if ( !retrieveTargzProc->start(OProcess::NotifyOnExit, OProcess::Stdin) )
1365 qWarning(" failed to start tar -x process"); 1365 qWarning(" failed to start tar -x process");
1366 } 1366 }
1367 retrieveTargzProc->writeStdin( buffer, buflen ); 1367 retrieveTargzProc->writeStdin( buffer, buflen );
1368} 1368}