summaryrefslogtreecommitdiff
authorpaule <paule>2007-07-16 09:38:45 (UTC)
committer paule <paule>2007-07-16 09:38:45 (UTC)
commit6e556a6cd6b4edf2abcf08a657c9f0b19a0fca76 (patch) (unidiff)
treede3724f66caa45e5fee614c22494587657093de8
parent15fbd2a9189281ca84d89ad6a77261d0046add36 (diff)
downloadopie-6e556a6cd6b4edf2abcf08a657c9f0b19a0fca76.zip
opie-6e556a6cd6b4edf2abcf08a657c9f0b19a0fca76.tar.gz
opie-6e556a6cd6b4edf2abcf08a657c9f0b19a0fca76.tar.bz2
Commit "thanks-pfalcon-this-one-is-better.patch" as attached to bug #1854. This fixes libopieobex previously being built without being linked to libopenobex, as well as some other issues that prevented IR recieve from working.upstream
Original patch by Marek Vasut <marek.vasut@gmail.com>; improved with input from pfalcon & polyonymous.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obex.pro4
-rw-r--r--core/obex/obexserver.cpp36
2 files changed, 23 insertions, 17 deletions
diff --git a/core/obex/obex.pro b/core/obex/obex.pro
index 05118ab..2372d12 100644
--- a/core/obex/obex.pro
+++ b/core/obex/obex.pro
@@ -7,7 +7,7 @@ DESTDIR = $(OPIEDIR)/plugins/obex
7INTERFACES = obexsendbase.ui 7INTERFACES = obexsendbase.ui
8INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/core/launcher 8INCLUDEPATH += $(OPIEDIR)/include $(OPIEDIR)/core/launcher
9DEPENDPATH += 9DEPENDPATH +=
10LIBS += -lqpe -lopiecore2 10LIBS += -lqpe -lopiecore2 -lopenobex
11 VERSION = 0.0.4 11 VERSION = 0.0.4
12 12
13include( $(OPIEDIR)/include.pro ) 13include( $(OPIEDIR)/include.pro )
@@ -19,6 +19,6 @@ contains( CONFTEST, y ){
19HEADERS += btobex.h 19HEADERS += btobex.h
20SOURCES += btobex.cpp 20SOURCES += btobex.cpp
21INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib 21INCLUDEPATH += $(OPIEDIR)/noncore/net/opietooth/lib
22LIBS += -lopietooth1 -lbluetooth -lopenobex 22LIBS += -lopietooth1 -lbluetooth
23DEFINES += BLUETOOTH 23DEFINES += BLUETOOTH
24} 24}
diff --git a/core/obex/obexserver.cpp b/core/obex/obexserver.cpp
index f1fb205..59fcb0f 100644
--- a/core/obex/obexserver.cpp
+++ b/core/obex/obexserver.cpp
@@ -207,7 +207,19 @@ static void obex_conn_event (obex_t *handle, obex_object_t *object,
207 /* Comes when a server-request has been received. */ 207 /* Comes when a server-request has been received. */
208 handle_request (handle, object, event, obex_cmd); 208 handle_request (handle, object, event, obex_cmd);
209 break; 209 break;
210 210 case OBEX_EV_REQDONE:
211 switch(obex_cmd) {
212 case OBEX_CMD_PUT:
213 case OBEX_CMD_CONNECT:
214 break;
215 case OBEX_CMD_DISCONNECT:
216 OBEX_TransportDisconnect(handle);
217 _exit(0);
218 break;
219 default:
220 break;
221 }
222 break;
211 case OBEX_EV_LINKERR: 223 case OBEX_EV_LINKERR:
212 break; 224 break;
213 } 225 }
@@ -423,21 +435,15 @@ bool ObexServer::start(RunMode runmode, Communication comm)
423 fcntl( fd[ 1 ], F_SETFD, FD_CLOEXEC ); 435 fcntl( fd[ 1 ], F_SETFD, FD_CLOEXEC );
424 436
425 if (initObex() == 0) { 437 if (initObex() == 0) {
438 if ( fd[ 1 ] ) {
439 ::close(fd[1]);
440 fd[1] = 0;
441 }
426 do { 442 do {
427 int result; //Connection result 443 if (OBEX_HandleInput(m_obex, 60) < 0) {
428 if ( fd[ 1 ] ) { 444 fprintf(stderr,"failed to OBEX_HandleInput(), errno=%d\n",errno);
429 ::close(fd[1]); 445 _exit(errno?errno:-1);
430 fd[1] = 0; 446 }
431 }
432 if ((result = OBEX_HandleInput(m_obex, 60)) < 0) {
433 if (errno != ECONNRESET) {
434 printf("OBEX_HandleInput error %d\n", errno);
435 fflush(stdout);
436 _exit(-1);
437 }
438 else
439 _exit(0);
440 }
441 } while(1); 447 } while(1);
442 } 448 }
443 char resultByte = 1; 449 char resultByte = 1;