diff options
| -rw-r--r-- | test/l2test.c | 24 | ||||
| -rw-r--r-- | test/rctest.c | 27 | 
2 files changed, 46 insertions, 5 deletions
| diff --git a/test/l2test.c b/test/l2test.c index acf4a23c..a6ff75fa 100644 --- a/test/l2test.c +++ b/test/l2test.c @@ -38,6 +38,7 @@  #include <signal.h>  #include <sys/time.h>  #include <sys/poll.h> +#include <sys/ioctl.h>  #include <sys/socket.h>  #include <bluetooth/bluetooth.h> @@ -222,6 +223,7 @@ static int do_connect(char *svr)  		goto error;  	} +#if 0  	/* Enable SO_TIMESTAMP */  	if (timestamp) {  		int t = 1; @@ -232,6 +234,7 @@ static int do_connect(char *svr)  			goto error;  		}  	} +#endif  	/* Enable SO_LINGER */  	if (linger) { @@ -443,6 +446,7 @@ static void do_listen(void (*handler)(int sk))  			ba, opts.imtu, opts.omtu, opts.flush_to, opts.mode, conn.hci_handle,  			conn.dev_class[2], conn.dev_class[1], conn.dev_class[0]); +#if 0  		/* Enable SO_TIMESTAMP */  		if (timestamp) {  			int t = 1; @@ -453,6 +457,7 @@ static void do_listen(void (*handler)(int sk))  				goto error;  			}  		} +#endif  		/* Enable SO_LINGER */  		if (linger) { @@ -526,12 +531,15 @@ static void recv_mode(int sk)  {  	struct timeval tv_beg, tv_end, tv_diff;  	struct pollfd p; +	char ts[30];  	long total;  	uint32_t seq;  	socklen_t optlen;  	int opt; -	syslog(LOG_INFO,"Receiving ..."); +	syslog(LOG_INFO, "Receiving ..."); + +	memset(ts, 0, sizeof(ts));  	p.fd = sk;  	p.events = POLLIN | POLLERR | POLLHUP; @@ -572,6 +580,18 @@ static void recv_mode(int sk)  			if (len < 6)  				break; +			if (timestamp) { +				struct timeval tv; + +				if (ioctl(sk, SIOCGSTAMP, &tv) < 0) { +					timestamp = 0; +					memset(ts, 0, sizeof(ts)); +				} else { +					sprintf(ts, "[%ld.%ld] ", +							tv.tv_sec, tv.tv_usec); +				} +			} +  			/* Check sequence */  			sq = btohl(*(uint32_t *) buf);  			if (seq != sq) { @@ -599,7 +619,7 @@ static void recv_mode(int sk)  		timersub(&tv_end, &tv_beg, &tv_diff); -		syslog(LOG_INFO,"%ld bytes in %.2f sec, %.2f kB/s", total, +		syslog(LOG_INFO,"%s%ld bytes in %.2f sec, %.2f kB/s", ts, total,  			tv2fl(tv_diff), (float)(total / tv2fl(tv_diff) ) / 1024.0);  	}  } diff --git a/test/rctest.c b/test/rctest.c index 2c69b5b2..612855f3 100644 --- a/test/rctest.c +++ b/test/rctest.c @@ -36,6 +36,7 @@  #include <syslog.h>  #include <signal.h>  #include <sys/time.h> +#include <sys/ioctl.h>  #include <sys/socket.h>  #include <bluetooth/bluetooth.h> @@ -101,6 +102,7 @@ static int do_connect(char *svr)  		return -1;  	} +#if 0  	/* Enable SO_TIMESTAMP */  	if (timestamp) {  		int t = 1; @@ -111,6 +113,7 @@ static int do_connect(char *svr)  			goto error;  		}  	} +#endif  	/* Enable SO_LINGER */  	if (linger) { @@ -266,6 +269,7 @@ static void do_listen(void (*handler)(int sk))  			ba, conn.hci_handle,  			conn.dev_class[2], conn.dev_class[1], conn.dev_class[0]); +#if 0  		/* Enable SO_TIMESTAMP */  		if (timestamp) {  			int t = 1; @@ -276,6 +280,7 @@ static void do_listen(void (*handler)(int sk))  				goto error;  			}  		} +#endif  		/* Enable SO_LINGER */  		if (linger) { @@ -313,11 +318,14 @@ static void dump_mode(int sk)  static void recv_mode(int sk)  { -	struct timeval tv_beg,tv_end,tv_diff; +	struct timeval tv_beg, tv_end, tv_diff; +	char ts[30];  	long total;  	uint32_t seq; -	syslog(LOG_INFO,"Receiving ..."); +	syslog(LOG_INFO, "Receiving ..."); + +	memset(ts, 0, sizeof(ts));  	seq = 0;  	while (1) { @@ -334,6 +342,19 @@ static void recv_mode(int sk)  							strerror(errno), errno);  				return;	  			} + +			if (timestamp) { +				struct timeval tv; + +				if (ioctl(sk, SIOCGSTAMP, &tv) < 0) { +					timestamp = 0; +					memset(ts, 0, sizeof(ts)); +				} else { +					sprintf(ts, "[%ld.%ld] ", +							tv.tv_sec, tv.tv_usec); +				} +			} +  #if 0  			/* Check sequence */  			sq = btohl(*(uint32_t *) buf); @@ -362,7 +383,7 @@ static void recv_mode(int sk)  		timersub(&tv_end,&tv_beg,&tv_diff); -		syslog(LOG_INFO,"%ld bytes in %.2f sec, %.2f kB/s", total, +		syslog(LOG_INFO,"%s%ld bytes in %.2f sec, %.2f kB/s", ts, total,  			tv2fl(tv_diff), (float)(total / tv2fl(tv_diff) ) / 1024.0);  	}  } | 
