---
apps/obex_test/obex_test.c | 85 ++++++++++++++++++++++++-------------
apps/obex_test/obex_test_client.c | 6 ---
2 files changed, 55 insertions(+), 36 deletions(-)
diff --git a/apps/obex_test/obex_test.c b/apps/obex_test/obex_test.c
index 8142d4b..96e16fa 100644
--- a/apps/obex_test/obex_test.c
+++ b/apps/obex_test/obex_test.c
@@ -166,6 +166,8 @@ int main (int argc, char *argv[])
int tcpobex = FALSE;
obex_t *handle = NULL;
struct context global_context = {0};
+ unsigned int flags = 0;
+ int i = 1;
#ifdef HAVE_BLUETOOTH
int btobex = 0;
@@ -187,6 +189,7 @@ int main (int argc, char *argv[])
"Usage: obex_test [options]\n"
"\n"
"Options:\n"
+ " -f [flags] Set some flags: n=non-blocking\n"
#ifdef HAVE_CABLE_OBEX
" -s [tty] Use cable transport
(Sony-Ericsson phones/DCU-11 cable)\n"
" -r [tty] Use cable transport for R320\n"
@@ -206,31 +209,51 @@ int main (int argc, char *argv[])
return 0;
}
+ /* Read flags for OBEX_New() */
+ if (argc >= i+1 && strcmp(argv[i], "-f") == 0) {
+ ++i;
+ if (argc >= i+1 && argv[i][0] != '-') {
+ char *flag = argv[i++];
+
+ for (; *flag != 0; ++flag)
+ switch(*flag) {
+ case 'n':
+ fprintf(stderr, "Using non-blocking
mode\n");
+ flags |= OBEX_FL_NONBLOCK;
+ break;
+
+ default:
+ fprintf(stderr, "Unknown flag %c\n",
*flag);
+ break;
+ };
+ }
+ }
+
#ifdef HAVE_CABLE_OBEX
- if ((argc == 2 || argc ==3) && strcmp(argv[1], "-s") == 0)
+ if ((argc == i+1 || argc == i+2) && strcmp(argv[i], "-s") == 0)
cobex = TRUE;
- if ((argc == 2 || argc ==3) && strcmp(argv[1], "-r") == 0) {
+ if ((argc == i+1 || argc == i+2) && strcmp(argv[i], "-r") == 0) {
cobex = TRUE;
r320 = TRUE;
}
#endif
#ifdef HAVE_BLUETOOTH
- if (argc >= 2 && strcmp(argv[1], "-b") == 0)
+ if (argc >= i+1 && strcmp(argv[i], "-b") == 0)
btobex = 1;
- if (argc >= 2 && strcmp(argv[1], "-B") == 0)
+ if (argc >= i+1 && strcmp(argv[i], "-B") == 0)
btobex = 2;
#endif
#ifdef HAVE_USB
- if (argc >= 2 && strcmp(argv[1], "-u") == 0)
+ if (argc >= i+1 && strcmp(argv[i], "-u") == 0)
usbobex = TRUE;
#endif
- if (argc == 2 && strcmp(argv[1], "-i") == 0)
+ if (argc == i+1 && strcmp(argv[i], "-i") == 0)
tcpobex = TRUE;
#ifdef HAVE_CABLE_OBEX
if (cobex) {
- if (argc == 3)
- port = argv[2];
+ if (argc == i+2)
+ port = argv[i+1];
else
port = "/dev/ttyS0";
@@ -246,7 +269,7 @@ int main (int argc, char *argv[])
return -1;
}
- handle = OBEX_New(OBEX_TRANS_CUSTOM, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_CUSTOM, obex_event, flags);
if (!handle) {
perror( "OBEX_Init failed");
return -1;
@@ -266,17 +289,17 @@ int main (int argc, char *argv[])
#ifdef HAVE_BLUETOOTH
if (btobex) {
const char *channel_arg = NULL;
- switch (argc) {
- case 4:
- str2ba(argv[2], &bdaddr);
- channel_arg = argv[3];
- break;
+ switch (argc-i) {
case 3:
- str2ba(argv[2], &bdaddr);
- if (bacmp(&bdaddr, BDADDR_ANY) == 0)
- channel_arg = argv[2];
+ str2ba(argv[i+1], &bdaddr);
+ channel_arg = argv[i+2];
break;
case 2:
+ str2ba(argv[i+1], &bdaddr);
+ if (bacmp(&bdaddr, BDADDR_ANY) == 0)
+ channel_arg = argv[i+1];
+ break;
+ case 1:
bacpy(&bdaddr, BDADDR_ANY);
break;
default:
@@ -287,7 +310,8 @@ int main (int argc, char *argv[])
switch (btobex) {
case 1:
printf("Using Bluetooth RFCOMM transport\n");
- handle = OBEX_New(OBEX_TRANS_BLUETOOTH, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_BLUETOOTH, obex_event,
+ flags);
if (channel_arg)
channel = (atoi(channel_arg) & 0xFF);
else
@@ -296,7 +320,8 @@ int main (int argc, char *argv[])
case 2:
printf("Using Bluetooth L2CAP transport\n");
- handle = OBEX_New(OBEX_TRANS_BT_L2CAP, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_BT_L2CAP, obex_event,
+ flags);
if (channel_arg)
channel = atoi(channel_arg);
channel = (channel | 0x1001) & 0xFFFF;
@@ -311,22 +336,22 @@ int main (int argc, char *argv[])
#endif
#ifdef HAVE_USB
if (usbobex) {
- int i, interfaces_number, intf_num;
- switch (argc) {
- case 2:
+ int k, interfaces_number, intf_num;
+ switch (argc-i) {
+ case 1:
printf("Using USB transport, "
"querying available interfaces\n");
- handle = OBEX_New(OBEX_TRANS_USB, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_USB, obex_event, flags);
if (!handle) {
perror( "OBEX_Init failed");
exit(0);
}
interfaces_number = OBEX_EnumerateInterfaces(handle);
- for (i = 0; i < interfaces_number; i++) {
+ for (k = 0; k < interfaces_number; k++) {
obex_intf = OBEX_GetInterfaceByIndex(handle, i);
printf("Interface %d: idVendor: %#x, "
"idProduct: %#x, bus %d, dev %d, "
- "intf %d, %s %s %s\n", i,
+ "intf %d, %s %s %s\n", k,
obex_intf->usb.idVendor,
obex_intf->usb.idProduct,
obex_intf->usb.bus_number,
@@ -341,10 +366,10 @@ int main (int argc, char *argv[])
OBEX_Cleanup(handle);
exit(0);
break;
- case 3:
- intf_num = atoi(argv[2]);
+ case 2:
+ intf_num = atoi(argv[i+1]);
printf("Using USB transport \n");
- handle = OBEX_New(OBEX_TRANS_USB, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_USB, obex_event, flags);
if (!handle) {
perror( "OBEX_Init failed");
exit(0);
@@ -367,7 +392,7 @@ int main (int argc, char *argv[])
if (tcpobex) {
printf("Using TCP transport\n");
- handle = OBEX_New(OBEX_TRANS_INET, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_INET, obex_event, flags);
if (!handle) {
perror( "OBEX_Init failed");
exit(0);
@@ -375,7 +400,7 @@ int main (int argc, char *argv[])
} else {
printf("Using IrDA transport\n");
- handle = OBEX_New(OBEX_TRANS_IRDA, obex_event, 0);
+ handle = OBEX_New(OBEX_TRANS_IRDA, obex_event, flags);
if (!handle) {
perror( "OBEX_Init failed");
exit(0);
diff --git a/apps/obex_test/obex_test_client.c
b/apps/obex_test/obex_test_client.c
index cf2dab4..f8bc537 100644
--- a/apps/obex_test/obex_test_client.c
+++ b/apps/obex_test/obex_test_client.c
@@ -77,12 +77,6 @@ static void syncwait(obex_t *handle)
printf("Error while doing OBEX_HandleInput()\n");
break;
}
- if(ret == 0) {
- /* If running cable. We get no link-errors, so cancel
on timeout */
- printf("Timeout waiting for data. Aborting\n");
- OBEX_CancelRequest(handle, FALSE);
- break;
- }
}
gt->clientdone = FALSE;
--
1.7.5.4
------------------------------------------------------------------------------
Got Input? Slashdot Needs You.
Take our quick survey online. Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Openobex-users mailing list
[email protected]
http://lists.sourceforge.net/lists/listinfo/openobex-users