--- 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 Openobex-users@lists.sourceforge.net http://lists.sourceforge.net/lists/listinfo/openobex-users