summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-07-10 09:38:39 +0000
committerMarcel Holtmann <marcel@holtmann.org>2008-07-10 09:38:39 +0000
commit06e4d41372a9f005b05cc2f4a09924f18bf6f6d7 (patch)
tree1c6a3bfd01eb5dcb6944d9b3b4a876df20b355e2 /test
parentc24fa29e216026c41a14a89690002f45d8031e86 (diff)
Allow link mode settings for outgoing connections
Diffstat (limited to 'test')
-rw-r--r--test/l2test.c8
-rw-r--r--test/rctest.c33
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));