-rw-r--r-- | core/obex/obexserver.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/core/obex/obexserver.cpp b/core/obex/obexserver.cpp index 286961f..a98c64f 100644 --- a/core/obex/obexserver.cpp +++ b/core/obex/obexserver.cpp | |||
@@ -421,49 +421,49 @@ bool ObexServer::start(RunMode runmode, Communication comm) | |||
421 | // Matthias | 421 | // Matthias |
422 | if ( run_mode == DontCare ) | 422 | if ( run_mode == DontCare ) |
423 | setpgid( 0, 0 ); | 423 | setpgid( 0, 0 ); |
424 | // restore default SIGPIPE handler (Harri) | 424 | // restore default SIGPIPE handler (Harri) |
425 | struct sigaction act; | 425 | struct sigaction act; |
426 | sigemptyset( &( act.sa_mask ) ); | 426 | sigemptyset( &( act.sa_mask ) ); |
427 | sigaddset( &( act.sa_mask ), SIGPIPE ); | 427 | sigaddset( &( act.sa_mask ), SIGPIPE ); |
428 | act.sa_handler = SIG_DFL; | 428 | act.sa_handler = SIG_DFL; |
429 | act.sa_flags = 0; | 429 | act.sa_flags = 0; |
430 | sigaction( SIGPIPE, &act, 0L ); | 430 | sigaction( SIGPIPE, &act, 0L ); |
431 | 431 | ||
432 | // We set the close on exec flag. | 432 | // We set the close on exec flag. |
433 | // Closing of fd[1] indicates that the execvp succeeded! | 433 | // Closing of fd[1] indicates that the execvp succeeded! |
434 | if ( fd[ 1 ] ) | 434 | if ( fd[ 1 ] ) |
435 | fcntl( fd[ 1 ], F_SETFD, FD_CLOEXEC ); | 435 | fcntl( fd[ 1 ], F_SETFD, FD_CLOEXEC ); |
436 | 436 | ||
437 | if (initObex() == 0) { | 437 | if (initObex() == 0) { |
438 | if ( fd[ 1 ] ) { | 438 | if ( fd[ 1 ] ) { |
439 | ::close(fd[1]); | 439 | ::close(fd[1]); |
440 | fd[1] = 0; | 440 | fd[1] = 0; |
441 | } | 441 | } |
442 | do { | 442 | do { |
443 | if (OBEX_HandleInput(m_obex, 60) < 0) { | 443 | if (OBEX_HandleInput(m_obex, 60) < 0) { |
444 | fprintf(stderr,"failed to OBEX_HandleInput(), errno=%d\n"); | 444 | fprintf(stderr,"failed to OBEX_HandleInput(), errno=%d\n"); |
445 | _exit(1); | 445 | _exit(errno?errno:-1); |
446 | } | 446 | } |
447 | } while(1); | 447 | } while(1); |
448 | } | 448 | } |
449 | char resultByte = 1; | 449 | char resultByte = 1; |
450 | if ( fd[ 1 ] ) | 450 | if ( fd[ 1 ] ) |
451 | write( fd[ 1 ], &resultByte, 1 ); | 451 | write( fd[ 1 ], &resultByte, 1 ); |
452 | _exit( -1 ); | 452 | _exit( -1 ); |
453 | } | 453 | } |
454 | else if ( -1 == pid_ ) | 454 | else if ( -1 == pid_ ) |
455 | { | 455 | { |
456 | // forking failed | 456 | // forking failed |
457 | 457 | ||
458 | runs = false; | 458 | runs = false; |
459 | return false; | 459 | return false; |
460 | } | 460 | } |
461 | else | 461 | else |
462 | { | 462 | { |
463 | if ( fd[ 1 ] ) | 463 | if ( fd[ 1 ] ) |
464 | close( fd[ 1 ] ); | 464 | close( fd[ 1 ] ); |
465 | // the parent continues here | 465 | // the parent continues here |
466 | 466 | ||
467 | // Discard any data for stdin that might still be there | 467 | // Discard any data for stdin that might still be there |
468 | input_data = 0; | 468 | input_data = 0; |
469 | 469 | ||