From: Gustavo Padovan <[email protected]>
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
[email protected]
http://lists.ofono.org/listinfo/ofono