diff options
| -rw-r--r-- | test/l2test.c | 16 | 
1 files changed, 14 insertions, 2 deletions
| diff --git a/test/l2test.c b/test/l2test.c index 859ce079..272f40f6 100644 --- a/test/l2test.c +++ b/test/l2test.c @@ -257,6 +257,7 @@ static void do_listen(void (*handler)(int sk))  {  	struct sockaddr_l2 loc_addr, rem_addr;  	struct l2cap_options opts; +	struct l2cap_conninfo conn;  	int s, s1, opt;  	char ba[18]; @@ -332,15 +333,26 @@ static void do_listen(void (*handler)(int sk))  		close(s); +		memset(&opts, 0, sizeof(opts));  		opt = sizeof(opts);  		if (getsockopt(s1, SOL_L2CAP, L2CAP_OPTIONS, &opts, &opt) < 0) {  			syslog(LOG_ERR, "Can't get L2CAP options: %s (%d)", strerror(errno), errno); +			close(s1); +			exit(1); +		} + +		memset(&conn, 0, sizeof(conn)); +		opt = sizeof(conn); +		if (getsockopt(s1, SOL_L2CAP, L2CAP_CONNINFO, &conn, &opt) < 0) { +			syslog(LOG_ERR, "Can't get L2CAP connection information: %s (%d)", strerror(errno), errno); +			close(s1);  			exit(1);  		}  		ba2str(&rem_addr.l2_bdaddr, ba); -		syslog(LOG_INFO, "Connect from %s [imtu %d, omtu %d, flush_to %d]\n", -					ba, opts.imtu, opts.omtu, opts.flush_to); +		syslog(LOG_INFO, "Connect from %s [imtu %d, omtu %d, flush_to %d, mode %d, handle %d, class 0x%02x%02x%02x]\n", +			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]);  		/* Enable SO_LINGER */  		if (linger) { | 
