summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obexserver.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/core/obex/obexserver.cpp b/core/obex/obexserver.cpp
index 786e9f7..286961f 100644
--- a/core/obex/obexserver.cpp
+++ b/core/obex/obexserver.cpp
@@ -214,6 +214,7 @@ static void obex_conn_event (obex_t *handle, obex_object_t *object,
214 break; 214 break;
215 case OBEX_CMD_DISCONNECT: 215 case OBEX_CMD_DISCONNECT:
216 OBEX_TransportDisconnect(handle); 216 OBEX_TransportDisconnect(handle);
217 _exit(0);
217 break; 218 break;
218 default: 219 default:
219 break; 220 break;
@@ -434,13 +435,15 @@ bool ObexServer::start(RunMode runmode, Communication comm)
434 fcntl( fd[ 1 ], F_SETFD, FD_CLOEXEC ); 435 fcntl( fd[ 1 ], F_SETFD, FD_CLOEXEC );
435 436
436 if (initObex() == 0) { 437 if (initObex() == 0) {
438 if ( fd[ 1 ] ) {
439 ::close(fd[1]);
440 fd[1] = 0;
441 }
437 do { 442 do {
438 if ( fd[ 1 ] ) { 443 if (OBEX_HandleInput(m_obex, 60) < 0) {
439 ::close(fd[1]); 444 fprintf(stderr,"failed to OBEX_HandleInput(), errno=%d\n");
440 fd[1] = 0; 445 _exit(1);
441 } 446 }
442 if (OBEX_HandleInput(m_obex, 10) < 0)
443 _exit(0);
444 } while(1); 447 } while(1);
445 } 448 }
446 char resultByte = 1; 449 char resultByte = 1;