From: Luiz Augusto von Dentz Date: Thu, 20 Jun 2013 10:32:05 +0000 (+0300) Subject: core: Add mode option to external profile default configuration X-Git-Tag: android-x86-4.4-r3~7939 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=1259936bba08e48e48e77965348d7367002c9e44;p=android-x86%2Fexternal-bluetooth-bluez.git core: Add mode option to external profile default configuration Some external profiles, FTP and OPP, require a different L2CAP mode such as ERTM to interoperate properly. --- diff --git a/src/profile.c b/src/profile.c index 9f98d6527..c74581157 100644 --- a/src/profile.c +++ b/src/profile.c @@ -562,6 +562,7 @@ struct ext_profile { guint id; + BtIOMode mode; BtIOSecLevel sec_level; bool authorize; @@ -1260,6 +1261,7 @@ static uint32_t ext_start_servers(struct ext_profile *ext, io = bt_io_listen(connect, confirm, l2cap, NULL, &err, BT_IO_OPT_SOURCE_BDADDR, adapter_get_address(adapter), + BT_IO_OPT_MODE, ext->mode, BT_IO_OPT_PSM, psm, BT_IO_OPT_SEC_LEVEL, ext->sec_level, BT_IO_OPT_INVALID); @@ -1891,6 +1893,7 @@ static struct default_settings { const char *remote_uuid; int channel; int psm; + BtIOMode mode; BtIOSecLevel sec_level; bool authorize; bool auto_connect; @@ -1942,6 +1945,7 @@ static struct default_settings { .name = "Object Push", .channel = OPP_DEFAULT_CHANNEL, .psm = BTD_PROFILE_PSM_AUTO, + .mode = BT_IO_MODE_ERTM, .sec_level = BT_IO_SEC_LOW, .authorize = false, .get_record = get_opp_record, @@ -1951,6 +1955,7 @@ static struct default_settings { .name = "File Transfer", .channel = FTP_DEFAULT_CHANNEL, .psm = BTD_PROFILE_PSM_AUTO, + .mode = BT_IO_MODE_ERTM, .get_record = get_ftp_record, .version = 0x0102, }, { @@ -1991,6 +1996,7 @@ static void ext_set_defaults(struct ext_profile *ext) { unsigned int i; + ext->mode = BT_IO_MODE_BASIC; ext->sec_level = BT_IO_SEC_MEDIUM; ext->authorize = true; ext->enable_client = true; @@ -2020,6 +2026,9 @@ static void ext_set_defaults(struct ext_profile *ext) if (settings->sec_level) ext->sec_level = settings->sec_level; + if (settings->mode) + ext->mode = settings->mode; + if (settings->auto_connect) ext->p.auto_connect = true;