diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/l2test.c | 8 | ||||
| -rw-r--r-- | test/rctest.c | 33 | 
2 files changed, 30 insertions, 11 deletions
| diff --git a/test/l2test.c b/test/l2test.c index a6ff75fa..bc57d6b6 100644 --- a/test/l2test.c +++ b/test/l2test.c @@ -251,6 +251,14 @@ static int do_connect(char *svr)  	opt = 0;  	if (reliable)  		opt |= L2CAP_LM_RELIABLE; +	if (master) +		opt |= L2CAP_LM_MASTER; +	if (auth) +		opt |= L2CAP_LM_AUTH; +	if (encrypt) +		opt |= L2CAP_LM_ENCRYPT; +	if (secure) +		opt |= L2CAP_LM_SECURE;  	if (setsockopt(sk, SOL_L2CAP, L2CAP_LM, &opt, sizeof(opt)) < 0) {  		syslog(LOG_ERR, "Can't set L2CAP link mode: %s (%d)", diff --git a/test/rctest.c b/test/rctest.c index 612855f3..2da87f71 100644 --- a/test/rctest.c +++ b/test/rctest.c @@ -92,7 +92,7 @@ static int do_connect(char *svr)  	struct sockaddr_rc addr;  	struct rfcomm_conninfo conn;  	socklen_t optlen; -	int sk; +	int sk, opt;  	/* Create socket */  	sk = socket(PF_BLUETOOTH, socktype, BTPROTO_RFCOMM); @@ -102,6 +102,17 @@ static int do_connect(char *svr)  		return -1;  	} +	/* Bind to local address */ +	memset(&addr, 0, sizeof(addr)); +	addr.rc_family = AF_BLUETOOTH; +	bacpy(&addr.rc_bdaddr, &bdaddr); + +	if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) { +		syslog(LOG_ERR, "Can't bind socket: %s (%d)", +							strerror(errno), errno); +		goto error; +	} +  #if 0  	/* Enable SO_TIMESTAMP */  	if (timestamp) { @@ -126,16 +137,16 @@ static int do_connect(char *svr)  		}  	} -	/* Bind to local address */ -	memset(&addr, 0, sizeof(addr)); -	addr.rc_family = AF_BLUETOOTH; -	bacpy(&addr.rc_bdaddr, &bdaddr); - -	if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) { -		syslog(LOG_ERR, "Can't bind socket: %s (%d)", -							strerror(errno), errno); -		goto error; -	} +	/* Set link mode */ +	opt = 0; +	if (master) +		opt |= RFCOMM_LM_MASTER; +	if (auth) +		opt |= RFCOMM_LM_AUTH; +	if (encrypt) +		opt |= RFCOMM_LM_ENCRYPT; +	if (secure) +		opt |= RFCOMM_LM_SECURE;  	/* Connect to remote device */  	memset(&addr, 0, sizeof(addr)); | 
