From: Andrei Emeltchenko <Andrei.Emeltchenko.news@gmail.com>
To: linux-bluetooth@vger.kernel.org
Subject: [PATCH 3/3] l2test: Add BT Channel Policy option
Date: Thu, 23 Feb 2012 17:20:18 +0200 [thread overview]
Message-ID: <1330010418-2613-3-git-send-email-Andrei.Emeltchenko.news@gmail.com> (raw)
In-Reply-To: <1330010418-2613-1-git-send-email-Andrei.Emeltchenko.news@gmail.com>
From: Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Make l2test able to set channel policy socket option.
---
test/l2test.c | 28 +++++++++++++++++++++++++++-
1 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/test/l2test.c b/test/l2test.c
index ce20bb3..7f97774 100644
--- a/test/l2test.c
+++ b/test/l2test.c
@@ -116,6 +116,7 @@ static int timestamp = 0;
static int defer_setup = 0;
static int priority = -1;
static int rcvbuf = 0;
+static int chan_policy = 0;
struct lookup_table {
char *name;
@@ -133,6 +134,13 @@ static struct lookup_table l2cap_modes[] = {
{ 0 }
};
+static struct lookup_table chan_policies[] = {
+ { "bredr", BT_CHANNEL_POLICY_BREDR_ONLY },
+ { "bredr_pref", BT_CHANNEL_POLICY_BREDR_PREFERRED },
+ { "amp_pref", BT_CHANNEL_POLICY_AMP_PREFERRED },
+ { NULL, 0 },
+};
+
static int get_lookup_flag(struct lookup_table *table, char *name)
{
int i;
@@ -296,6 +304,15 @@ static int do_connect(char *svr)
}
#endif
+ if (chan_policy != -1) {
+ if (setsockopt(sk, SOL_BLUETOOTH, BT_CHANNEL_POLICY,
+ &chan_policy, sizeof(chan_policy)) < 0) {
+ syslog(LOG_ERR, "Can't enable chan policy : %s (%d)",
+ strerror(errno), errno);
+ goto error;
+ }
+ }
+
/* Enable SO_LINGER */
if (linger) {
struct linger l = { .l_onoff = 1, .l_linger = linger };
@@ -1216,7 +1233,7 @@ int main(int argc, char *argv[])
bacpy(&bdaddr, BDADDR_ANY);
- while ((opt=getopt(argc,argv,"rdscuwmntqxyzpb:i:P:I:O:J:B:N:L:W:C:D:X:F:Q:Z:Y:H:K:RUGAESMT")) != EOF) {
+ while ((opt=getopt(argc,argv,"rdscuwmntqxyzpb:i:P:I:O:J:B:N:L:W:C:D:X:F:Q:Z:Y:H:K:RUGAESMTa:")) != EOF) {
switch(opt) {
case 'r':
mode = RECV;
@@ -1339,8 +1356,17 @@ int main(int argc, char *argv[])
if (rfcmode == -1) {
print_lookup_values(l2cap_modes,
"List L2CAP modes:");
+ exit(1);
+ }
+
+ break;
+ case 'a':
+ chan_policy = get_lookup_flag(chan_policies, optarg);
+ if (chan_policy == -1) {
+ print_lookup_values(chan_policies,
+ "List L2CAP chan policies:");
exit(1);
}
--
1.7.9
prev parent reply other threads:[~2012-02-23 15:20 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-23 15:20 [PATCH 1/3] bluez: Copy L2CAP chan policy defines from kernel Andrei Emeltchenko
2012-02-23 15:20 ` [PATCH 2/3] l2test: Clean up lookup table code Andrei Emeltchenko
2012-02-23 15:20 ` Andrei Emeltchenko [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1330010418-2613-3-git-send-email-Andrei.Emeltchenko.news@gmail.com \
--to=andrei.emeltchenko.news@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).