mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-11-16 08:44:38 +08:00
Fix not storing tty id on pnatd plugin
The code used to create the port stored the id in a local variable instead of storing it in the client data which is used to release the port once disconnected.
This commit is contained in:
parent
0739b005c4
commit
4fc3ab7168
@ -238,7 +238,7 @@ static gboolean create_tty(struct dun_server *server)
|
||||
{
|
||||
struct dun_client *client = &server->client;
|
||||
struct rfcomm_dev_req req;
|
||||
int dev, sk = g_io_channel_unix_get_fd(client->io);
|
||||
int sk = g_io_channel_unix_get_fd(client->io);
|
||||
|
||||
memset(&req, 0, sizeof(req));
|
||||
req.dev_id = -1;
|
||||
@ -251,13 +251,14 @@ static gboolean create_tty(struct dun_server *server)
|
||||
BT_IO_OPT_DEST_CHANNEL, &req.channel,
|
||||
BT_IO_OPT_INVALID);
|
||||
|
||||
dev = ioctl(sk, RFCOMMCREATEDEV, &req);
|
||||
if (dev < 0) {
|
||||
client->tty_id = ioctl(sk, RFCOMMCREATEDEV, &req);
|
||||
if (client->tty_id < 0) {
|
||||
error("Can't create RFCOMM TTY: %s", strerror(errno));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
snprintf(client->tty_name, PATH_MAX - 1, "/dev/rfcomm%d", dev);
|
||||
snprintf(client->tty_name, PATH_MAX - 1, "/dev/rfcomm%d",
|
||||
client->tty_id);
|
||||
|
||||
client->tty_tries = TTY_TRIES;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user