Return-Path: From: Andrei Emeltchenko To: linux-bluetooth@vger.kernel.org Subject: [RFC 2/6] android/socket: Use dafault sec_level for listen Date: Fri, 22 Nov 2013 17:49:32 +0200 Message-Id: <1385135376-21057-2-git-send-email-Andrei.Emeltchenko.news@gmail.com> In-Reply-To: <1385135376-21057-1-git-send-email-Andrei.Emeltchenko.news@gmail.com> References: <1385135376-21057-1-git-send-email-Andrei.Emeltchenko.news@gmail.com> Sender: linux-bluetooth-owner@vger.kernel.org List-ID: From: Andrei Emeltchenko Set default security level low for OPP and SPP and medium for PBAP and MAS. Default security level would be low for listening without profile. --- android/socket.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/android/socket.c b/android/socket.c index 4f6f02b..fcba1e8 100644 --- a/android/socket.c +++ b/android/socket.c @@ -329,6 +329,7 @@ static struct profile_info { }, .channel = PBAP_DEFAULT_CHANNEL, .svc_hint = SVC_HINT_OBEX, + .sec_level = BT_IO_SEC_MEDIUM, .create_record = create_pbap_record }, { .uuid = { @@ -337,13 +338,17 @@ static struct profile_info { }, .channel = OPP_DEFAULT_CHANNEL, .svc_hint = SVC_HINT_OBEX, + .sec_level = BT_IO_SEC_LOW, .create_record = create_opp_record }, { .uuid = { 0x00, 0x00, 0x11, 0x32, 0x00, 0x00, 0x10, 0x00, 0x80, 0x00, 0x00, 0x80, 0x5F, 0x9B, 0x34, 0xFB }, - .channel = MAS_DEFAULT_CHANNEL + .channel = MAS_DEFAULT_CHANNEL, + .svc_hint = 0, + .sec_level = BT_IO_SEC_MEDIUM, + .create_record = NULL }, { .uuid = { 0x00, 0x00, 0x11, 0x01, 0x00, 0x00, 0x10, 0x00, @@ -351,6 +356,7 @@ static struct profile_info { }, .channel = SPP_DEFAULT_CHANNEL, .svc_hint = 0, + .sec_level = BT_IO_SEC_LOW, .create_record = create_spp_record }, }; @@ -624,6 +630,7 @@ static int handle_listen(void *buf) struct hal_cmd_sock_listen *cmd = buf; struct profile_info *profile; struct rfcomm_sock *rfsock; + BtIOSecLevel sec_level; GIOChannel *io; GError *err = NULL; int hal_fd; @@ -635,10 +642,14 @@ static int handle_listen(void *buf) if (!profile) { if (!cmd->channel) return -1; - else + else { chan = cmd->channel; - } else + sec_level = BT_IO_SEC_LOW; + } + } else { chan = profile->channel; + sec_level = profile->sec_level; + } DBG("rfcomm channel %d svc_name %s", chan, cmd->name); @@ -649,6 +660,7 @@ static int handle_listen(void *buf) io = bt_io_listen(accept_cb, NULL, rfsock, NULL, &err, BT_IO_OPT_SOURCE_BDADDR, &adapter_addr, BT_IO_OPT_CHANNEL, chan, + BT_IO_OPT_SEC_LEVEL, sec_level, BT_IO_OPT_INVALID); if (!io) { error("Failed listen: %s", err->message); -- 1.8.3.2