author | erik <erik> | 2007-01-19 01:18:01 (UTC) |
---|---|---|
committer | erik <erik> | 2007-01-19 01:18:01 (UTC) |
commit | 32343107b30904806d02672955c57ed53d39fe79 (patch) (unidiff) | |
tree | 9114a0ea170e3adc807a2445b49360f1bfde9626 /core/launcher | |
parent | ac0ce844e90a64247c0adb210e0a23021b011d57 (diff) | |
download | opie-32343107b30904806d02672955c57ed53d39fe79.zip opie-32343107b30904806d02672955c57ed53d39fe79.tar.gz opie-32343107b30904806d02672955c57ed53d39fe79.tar.bz2 |
Every file in this commit has a change to check the return value of a call.
-rw-r--r-- | core/launcher/qprocess_unix.cpp | 6 | ||||
-rw-r--r-- | core/launcher/server.cpp | 19 |
2 files changed, 19 insertions, 6 deletions
diff --git a/core/launcher/qprocess_unix.cpp b/core/launcher/qprocess_unix.cpp index 97c0460..3125bcc 100644 --- a/core/launcher/qprocess_unix.cpp +++ b/core/launcher/qprocess_unix.cpp | |||
@@ -292,49 +292,53 @@ void QProcessManager::remove( QProc *p ) | |||
292 | odebug << "QProcessManager: remove process (procList.count(): " << procList->count() << ")" << oendl; | 292 | odebug << "QProcessManager: remove process (procList.count(): " << procList->count() << ")" << oendl; |
293 | #endif | 293 | #endif |
294 | cleanup(); | 294 | cleanup(); |
295 | } | 295 | } |
296 | 296 | ||
297 | void QProcessManager::cleanup() | 297 | void QProcessManager::cleanup() |
298 | { | 298 | { |
299 | if ( procList->count() == 0 ) { | 299 | if ( procList->count() == 0 ) { |
300 | QTimer::singleShot( 0, this, SLOT(removeMe()) ); | 300 | QTimer::singleShot( 0, this, SLOT(removeMe()) ); |
301 | } | 301 | } |
302 | } | 302 | } |
303 | 303 | ||
304 | void QProcessManager::removeMe() | 304 | void QProcessManager::removeMe() |
305 | { | 305 | { |
306 | if ( procList->count() == 0 ) { | 306 | if ( procList->count() == 0 ) { |
307 | qprocess_cleanup_procmanager.remove( &QProcessPrivate::procManager ); | 307 | qprocess_cleanup_procmanager.remove( &QProcessPrivate::procManager ); |
308 | QProcessPrivate::procManager = 0; | 308 | QProcessPrivate::procManager = 0; |
309 | delete this; | 309 | delete this; |
310 | } | 310 | } |
311 | } | 311 | } |
312 | 312 | ||
313 | void QProcessManager::sigchldHnd( int fd ) | 313 | void QProcessManager::sigchldHnd( int fd ) |
314 | { | 314 | { |
315 | char tmp; | 315 | char tmp; |
316 | ::read( fd, &tmp, sizeof(tmp) ); | 316 | if (::read( fd, &tmp, sizeof(tmp) ) < 0) |
317 | #if defined(QT_QPROCESS_DEBUG) | ||
318 | odebug << "QProcessManager::sigchldHnd() failed dummy read of file descriptor" << oendl; | ||
319 | #endif | ||
320 | ; | ||
317 | #if defined(QT_QPROCESS_DEBUG) | 321 | #if defined(QT_QPROCESS_DEBUG) |
318 | odebug << "QProcessManager::sigchldHnd()" << oendl; | 322 | odebug << "QProcessManager::sigchldHnd()" << oendl; |
319 | #endif | 323 | #endif |
320 | QProc *proc; | 324 | QProc *proc; |
321 | QProcess *process; | 325 | QProcess *process; |
322 | bool removeProc; | 326 | bool removeProc; |
323 | proc = procList->first(); | 327 | proc = procList->first(); |
324 | while ( proc != 0 ) { | 328 | while ( proc != 0 ) { |
325 | removeProc = FALSE; | 329 | removeProc = FALSE; |
326 | process = proc->process; | 330 | process = proc->process; |
327 | QProcess *process_exit_notify=0; | 331 | QProcess *process_exit_notify=0; |
328 | if ( process != 0 ) { | 332 | if ( process != 0 ) { |
329 | if ( !process->isRunning() ) { | 333 | if ( !process->isRunning() ) { |
330 | #if defined(QT_QPROCESS_DEBUG) | 334 | #if defined(QT_QPROCESS_DEBUG) |
331 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): process exited (QProcess available)" << oendl; | 335 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): process exited (QProcess available)" << oendl; |
332 | #endif | 336 | #endif |
333 | // read pending data | 337 | // read pending data |
334 | int nbytes = 0; | 338 | int nbytes = 0; |
335 | if ( ::ioctl(proc->socketStdout, FIONREAD, (char*)&nbytes)==0 && nbytes>0 ) { | 339 | if ( ::ioctl(proc->socketStdout, FIONREAD, (char*)&nbytes)==0 && nbytes>0 ) { |
336 | #if defined(QT_QPROCESS_DEBUG) | 340 | #if defined(QT_QPROCESS_DEBUG) |
337 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): reading " << nbytes << " bytes of pending data on stdout" << oendl; | 341 | odebug << "QProcessManager::sigchldHnd() (PID: " << proc->pid << "): reading " << nbytes << " bytes of pending data on stdout" << oendl; |
338 | #endif | 342 | #endif |
339 | process->socketRead( proc->socketStdout ); | 343 | process->socketRead( proc->socketStdout ); |
340 | } | 344 | } |
diff --git a/core/launcher/server.cpp b/core/launcher/server.cpp index 921b790..c45265a 100644 --- a/core/launcher/server.cpp +++ b/core/launcher/server.cpp | |||
@@ -346,58 +346,66 @@ void Server::systemMsg(const QCString &msg, const QByteArray &data) | |||
346 | QString link; | 346 | QString link; |
347 | stream >> link; | 347 | stream >> link; |
348 | odebug << "desktop.cpp systemMsg -> linkchanged( " << link << " )" << oendl; | 348 | odebug << "desktop.cpp systemMsg -> linkchanged( " << link << " )" << oendl; |
349 | docList->linkChanged(link); | 349 | docList->linkChanged(link); |
350 | } else if (msg =="reforceDocuments()") { | 350 | } else if (msg =="reforceDocuments()") { |
351 | docList->reforceDocuments(); | 351 | docList->reforceDocuments(); |
352 | } else if ( msg == "serviceChanged(QString)" ) { | 352 | } else if ( msg == "serviceChanged(QString)" ) { |
353 | MimeType::updateApplications(); | 353 | MimeType::updateApplications(); |
354 | } else if ( msg == "mkdir(QString)" ) { | 354 | } else if ( msg == "mkdir(QString)" ) { |
355 | QString dir; | 355 | QString dir; |
356 | stream >> dir; | 356 | stream >> dir; |
357 | if ( !dir.isEmpty() ) | 357 | if ( !dir.isEmpty() ) |
358 | mkdir( dir ); | 358 | mkdir( dir ); |
359 | } else if ( msg == "rdiffGenSig(QString,QString)" ) { | 359 | } else if ( msg == "rdiffGenSig(QString,QString)" ) { |
360 | QString baseFile, sigFile; | 360 | QString baseFile, sigFile; |
361 | stream >> baseFile >> sigFile; | 361 | stream >> baseFile >> sigFile; |
362 | QRsync::generateSignature( baseFile, sigFile ); | 362 | QRsync::generateSignature( baseFile, sigFile ); |
363 | } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { | 363 | } else if ( msg == "rdiffGenDiff(QString,QString,QString)" ) { |
364 | QString baseFile, sigFile, deltaFile; | 364 | QString baseFile, sigFile, deltaFile; |
365 | stream >> baseFile >> sigFile >> deltaFile; | 365 | stream >> baseFile >> sigFile >> deltaFile; |
366 | QRsync::generateDiff( baseFile, sigFile, deltaFile ); | 366 | QRsync::generateDiff( baseFile, sigFile, deltaFile ); |
367 | } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { | 367 | } else if ( msg == "rdiffApplyPatch(QString,QString)" ) { |
368 | QString baseFile, deltaFile; | 368 | QString baseFile, deltaFile; |
369 | stream >> baseFile >> deltaFile; | 369 | stream >> baseFile >> deltaFile; |
370 | bool fileWasCreated = false; | ||
370 | if ( !QFile::exists( baseFile ) ) { | 371 | if ( !QFile::exists( baseFile ) ) { |
371 | QFile f( baseFile ); | 372 | QFile f( baseFile ); |
372 | f.open( IO_WriteOnly ); | 373 | fileWasCreated = f.open( IO_WriteOnly ); |
373 | f.close(); | 374 | f.close(); |
374 | } | 375 | } |
375 | QRsync::applyDiff( baseFile, deltaFile ); | 376 | if ( fileWasCreated ) { |
377 | QRsync::applyDiff( baseFile, deltaFile ); | ||
376 | #ifndef QT_NO_COP | 378 | #ifndef QT_NO_COP |
377 | QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); | 379 | QCopEnvelope e( "QPE/Desktop", "patchApplied(QString)" ); |
378 | e << baseFile; | 380 | e << baseFile; |
379 | #endif | 381 | #endif |
382 | } else { | ||
383 | #ifndef QT_NO_COP | ||
384 | QCopEnvelope e( "QPE/Desktop", "patchUnapplied(QString)" ); | ||
385 | e << baseFile; | ||
386 | #endif | ||
387 | } | ||
380 | } else if ( msg == "rdiffCleanup()" ) { | 388 | } else if ( msg == "rdiffCleanup()" ) { |
381 | mkdir( "/tmp/rdiff" ); | 389 | mkdir( "/tmp/rdiff" ); |
382 | QDir dir; | 390 | QDir dir; |
383 | dir.setPath( "/tmp/rdiff" ); | 391 | dir.setPath( "/tmp/rdiff" ); |
384 | QStringList entries = dir.entryList(); | 392 | QStringList entries = dir.entryList(); |
385 | for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) | 393 | for ( QStringList::Iterator it = entries.begin(); it != entries.end(); ++it ) |
386 | dir.remove( *it ); | 394 | dir.remove( *it ); |
387 | } else if ( msg == "sendHandshakeInfo()" ) { | 395 | } else if ( msg == "sendHandshakeInfo()" ) { |
388 | QString home = getenv( "HOME" ); | 396 | QString home = getenv( "HOME" ); |
389 | #ifndef QT_NO_COP | 397 | #ifndef QT_NO_COP |
390 | QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); | 398 | QCopEnvelope e( "QPE/Desktop", "handshakeInfo(QString,bool)" ); |
391 | e << home; | 399 | e << home; |
392 | int locked = (int) ServerApplication::screenLocked(); | 400 | int locked = (int) ServerApplication::screenLocked(); |
393 | e << locked; | 401 | e << locked; |
394 | #endif | 402 | #endif |
395 | } else if ( msg == "sendVersionInfo()" ) { | 403 | } else if ( msg == "sendVersionInfo()" ) { |
396 | /* | 404 | /* |
397 | * @&$*! Qtopiadesktop relies on the major number | 405 | * @&$*! Qtopiadesktop relies on the major number |
398 | * to start with 1. (or 2 as the case of version 2.1 will be) | 406 | * to start with 1. (or 2 as the case of version 2.1 will be) |
399 | * we need to fake 1.7 to be able | 407 | * we need to fake 1.7 to be able |
400 | * to sync with Qtopiadesktop 1.7. | 408 | * to sync with Qtopiadesktop 1.7. |
401 | * We'll send it Opie's version in the platform string for now, | 409 | * We'll send it Opie's version in the platform string for now, |
402 | * until such time when QD gets rewritten correctly. | 410 | * until such time when QD gets rewritten correctly. |
403 | */ | 411 | */ |
@@ -977,30 +985,31 @@ void Server::finishedQueuedRequests() | |||
977 | // Get rid of the dialog | 985 | // Get rid of the dialog |
978 | if ( syncDialog ) { | 986 | if ( syncDialog ) { |
979 | delete syncDialog; | 987 | delete syncDialog; |
980 | syncDialog = 0; | 988 | syncDialog = 0; |
981 | } | 989 | } |
982 | #warning FIXME support TempScreenSaverMode | 990 | #warning FIXME support TempScreenSaverMode |
983 | #if 0 | 991 | #if 0 |
984 | QPEApplication::setTempScreenSaverMode(QPEApplication::Enable); | 992 | QPEApplication::setTempScreenSaverMode(QPEApplication::Enable); |
985 | #endif | 993 | #endif |
986 | } else { | 994 | } else { |
987 | qrr->readyToDelete = TRUE; | 995 | qrr->readyToDelete = TRUE; |
988 | QTimer::singleShot( 0, this, SLOT(finishedQueuedRequests()) ); | 996 | QTimer::singleShot( 0, this, SLOT(finishedQueuedRequests()) ); |
989 | } | 997 | } |
990 | } | 998 | } |
991 | 999 | ||
992 | void Server::startSoundServer() { | 1000 | void Server::startSoundServer() { |
993 | if ( !process ) { | 1001 | if ( !process ) { |
994 | process = new Opie::Core::OProcess( this ); | 1002 | process = new Opie::Core::OProcess( this ); |
995 | connect(process, SIGNAL(processExited(Opie::Core::OProcess*)), | 1003 | connect(process, SIGNAL(processExited(Opie::Core::OProcess*)), |
996 | SLOT(soundServerExited())); | 1004 | SLOT(soundServerExited())); |
997 | } | 1005 | } |
998 | 1006 | ||
999 | process->clearArguments(); | 1007 | process->clearArguments(); |
1000 | *process << QPEApplication::qpeDir() + "bin/qss"; | 1008 | *process << QPEApplication::qpeDir() + "bin/qss"; |
1001 | process->start(); | 1009 | if (!process->start()) |
1010 | owarn << "Sound server process did not start" << oendl; | ||
1002 | } | 1011 | } |
1003 | 1012 | ||
1004 | void Server::soundServerExited() { | 1013 | void Server::soundServerExited() { |
1005 | QTimer::singleShot(5000, this, SLOT(startSoundServer())); | 1014 | QTimer::singleShot(5000, this, SLOT(startSoundServer())); |
1006 | } | 1015 | } |