bluez5: use bigger fallback SCO mtu if kernel doesn't tell us

Use bigger fallback maximum MTU, when kernel fails to tell us, which
shouldn't happen but apparently can. We choose the packet size based on
incoming data, so these values aren't usually needed so we can just bump
them.

Also report errors as necessary.
This commit is contained in:
Pauli Virtanen 2023-10-15 16:46:32 +03:00 committed by Wim Taymans
parent ca0e886159
commit 44a166c288
2 changed files with 6 additions and 6 deletions

View file

@ -1514,9 +1514,9 @@ static void sco_ready(struct spa_bt_transport *t)
len = sizeof(sco_opt);
memset(&sco_opt, 0, len);
if (getsockopt(t->fd, SOL_SCO, SCO_OPTIONS, &sco_opt, &len) < 0) {
spa_log_warn(backend->log, "getsockopt(SCO_OPTIONS) failed, using defaults");
t->read_mtu = 48;
t->write_mtu = 48;
spa_log_warn(backend->log, "getsockopt(SCO_OPTIONS) failed: %d (%m)", errno);
t->read_mtu = 144;
t->write_mtu = 144;
} else {
spa_log_debug(backend->log, "autodetected mtu = %u", sco_opt.mtu);
t->read_mtu = sco_opt.mtu;

View file

@ -93,14 +93,14 @@ static void ofono_transport_get_mtu(struct impl *backend, struct spa_bt_transpor
socklen_t len;
/* Fallback values */
t->read_mtu = 48;
t->write_mtu = 48;
t->read_mtu = 144;
t->write_mtu = 144;
len = sizeof(sco_opt);
memset(&sco_opt, 0, len);
if (getsockopt(t->fd, SOL_SCO, SCO_OPTIONS, &sco_opt, &len) < 0)
spa_log_warn(backend->log, "getsockopt(SCO_OPTIONS) failed, loading defaults");
spa_log_warn(backend->log, "getsockopt(SCO_OPTIONS) failed: %d (%m)", errno);
else {
spa_log_debug(backend->log, "autodetected mtu = %u", sco_opt.mtu);
t->read_mtu = sco_opt.mtu;