diff options
| -rw-r--r-- | tools/l2ping.1 | 9 | ||||
| -rw-r--r-- | tools/l2ping.c | 27 | 
2 files changed, 25 insertions, 11 deletions
| diff --git a/tools/l2ping.1 b/tools/l2ping.1 index 186e5056..0c7da44b 100644 --- a/tools/l2ping.1 +++ b/tools/l2ping.1 @@ -10,6 +10,8 @@ l2ping \- Send L2CAP echo request and receive answer  ] [  .I -c count  ] [ +.I -t timeout +] [  .I -f  ] <  .I bd_addr @@ -34,6 +36,11 @@ Send  .B count  number of packets then exit.  .TP +.I -c timeout +Wait +.B timeout +for the response. +.TP  .I -f  Kind of flood ping. Use with care! It reduces the delay time between packets  to 0. @@ -44,6 +51,6 @@ The Bluetooth MAC address to be pinged in dotted hex notation like  or  .B 01:EF:cd:aB:02:03  .SH AUTHORS -Written by Maxim Krasnyansky <maxk@qualcomm.com> +Written by Maxim Krasnyansky <maxk@qualcomm.com> and Marcel Holtmann <marcel@holtmann.org>  .PP  man page by Nils Faerber <nils@kernelconcepts.de> diff --git a/tools/l2ping.c b/tools/l2ping.c index 1f3f3a41..45ddbe92 100644 --- a/tools/l2ping.c +++ b/tools/l2ping.c @@ -56,10 +56,11 @@  /* Defaults */  bdaddr_t bdaddr; -int size  = 20; -int ident = 200; -int delay = 1; -int count = -1; +int size    = 20; +int ident   = 200; +int delay   = 1; +int count   = -1; +int timeout = 10;  /* Stats */  int sent_pkt = 0, recv_pkt = 0; @@ -120,7 +121,7 @@ static void ping(char *svr)  	/* Initialize buffer */  	for (i = L2CAP_CMD_HDR_SIZE; i < sizeof(buf); i++) -		buf[i]=(i%40)+'A'; +		buf[i] = (i % 40) + 'A';  	id = ident; @@ -148,7 +149,7 @@ static void ping(char *svr)  			register int err;  			pf[0].fd = s; pf[0].events = POLLIN; -			if ((err = poll(pf, 1, 10*1000)) < 0) { +			if ((err = poll(pf, 1, timeout * 1000)) < 0) {  				perror("Poll failed");  				exit(1);  			} @@ -193,12 +194,14 @@ static void ping(char *svr)  			printf("%d bytes from %s id %d time %.2fms\n", cmd->len, svr, id - ident, tv2fl(tv_diff)); -			if (delay) sleep(delay); +			if (delay) +				sleep(delay);  		} else {  			printf("no response from %s: id %d\n", svr, id);  		} -		if (++id > 254) id = ident; +		if (++id > 254) +			id = ident;  	}  	stat(0);  } @@ -207,7 +210,7 @@ static void usage(void)  {  	printf("l2ping - L2CAP ping\n");  	printf("Usage:\n"); -	printf("\tl2ping [-S source addr] [-s size] [-c count] [-f] <bd_addr>\n"); +	printf("\tl2ping [-S source addr] [-s size] [-c count] [-t timeout] [-f] <bd_addr>\n");  }  extern int optind,opterr,optopt; @@ -220,7 +223,7 @@ int main(int argc, char *argv[])  	/* Default options */  	bacpy(&bdaddr, BDADDR_ANY); -	while ((opt=getopt(argc,argv,"s:c:fS:")) != EOF) { +	while ((opt=getopt(argc,argv,"s:c:t:fS:")) != EOF) {  		switch(opt) {  		case 'f':  			/* Kinda flood ping */ @@ -231,6 +234,10 @@ int main(int argc, char *argv[])  			count = atoi(optarg);  			break; +		case 't': +			timeout = atoi(optarg); +			break; +  		case 's':  			size = atoi(optarg);  			break; | 
