diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2013-06-20 13:32:05 +0300 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2013-06-24 15:14:04 +0300 |
commit | 1259936bba08e48e48e77965348d7367002c9e44 (patch) | |
tree | 6be63f30ca989b8e5a5cb4b3010ee82b26b9c3a0 /src/profile.c | |
parent | b6e8a47778cea901d60368e871f4b18bbf6c7f8b (diff) | |
download | bluez-1259936bba08e48e48e77965348d7367002c9e44.tar.gz |
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.
Diffstat (limited to 'src/profile.c')
-rw-r--r-- | src/profile.c | 9 |
1 files changed, 9 insertions, 0 deletions
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; |