[Bluetooth] Disconnect L2CAP connection after last RFCOMM DLC
The RFCOMM specification says that the device closing the last DLC on a particular session is responsible for closing the multiplexer by closing the corresponding L2CAP channel. Signed-off-by: Ville Tervo <ville.tervo@nokia.com> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
This commit is contained in:
Родитель
77f2a45fa1
Коммит
9cf5b0ea3a
|
@ -1058,6 +1058,12 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci)
|
|||
case BT_DISCONN:
|
||||
d->state = BT_CLOSED;
|
||||
__rfcomm_dlc_close(d, 0);
|
||||
|
||||
if (list_empty(&s->dlcs)) {
|
||||
s->state = BT_DISCONN;
|
||||
rfcomm_send_disc(s, 0);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
|
@ -1067,6 +1073,10 @@ static int rfcomm_recv_ua(struct rfcomm_session *s, u8 dlci)
|
|||
s->state = BT_CONNECTED;
|
||||
rfcomm_process_connect(s);
|
||||
break;
|
||||
|
||||
case BT_DISCONN:
|
||||
rfcomm_session_put(s);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче