From: Gustavo Padovan <gustavo.pado...@collabora.co.uk> If we do not shut it down the fd can remain opened. This make impossible to try a re-connect: busy is returned in this case.
We call shutdown here to make sure that the link is always closed. --- dundee/bluetooth.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/dundee/bluetooth.c b/dundee/bluetooth.c index e2e2bca..9ddc72c 100644 --- a/dundee/bluetooth.c +++ b/dundee/bluetooth.c @@ -28,6 +28,7 @@ #include <fcntl.h> #include <string.h> #include <errno.h> +#include <sys/socket.h> #include <glib.h> @@ -44,6 +45,8 @@ struct bluetooth_device { char *address; char *name; + int fd; + DBusPendingCall *call; }; @@ -54,6 +57,8 @@ static void bt_disconnect(struct dundee_device *device, DBG("%p", bt); + shutdown(bt->fd, SHUT_RDWR); + CALLBACK_WITH_SUCCESS(cb, data); } @@ -93,6 +98,8 @@ static void bt_connect_reply(DBusPendingCall *call, gpointer user_data) goto done; } + bt->fd = fd; + CALLBACK_WITH_SUCCESS(cb, fd, cbd->data); done: -- 1.7.11.2 _______________________________________________ ofono mailing list ofono@ofono.org http://lists.ofono.org/listinfo/ofono