g_array_free(out_param, TRUE);
break;
}
+ case BT_RFCOMM_LISTEN_AND_ACCEPT:
case BT_RFCOMM_LISTEN: {
GUnixFDList *fd_list = NULL;
GError *error = NULL;
return FALSE;
}
-int _bt_rfcomm_socket_listen(char *svc_name, char *uuid)
+gboolean __bt_send_rfcomm_server_fd_with_accept(gpointer user_data)
+{
+ BT_DBG("+");
+
+ __bt_rfcomm_reply_pending_request(BLUETOOTH_ERROR_NONE,
+ BT_RFCOMM_LISTEN_AND_ACCEPT, user_data, sizeof(int));
+
+ g_free(user_data);
+ BT_DBG("-");
+ return FALSE;
+}
+
+int _bt_rfcomm_socket_listen(char *svc_name, char *uuid, bool accept)
{
int channel = 0;
int sock_fd;
return BLUETOOTH_ERROR_INTERNAL;
}
- g_idle_add(__bt_send_rfcomm_server_fd, g_memdup(&sock_fd, sizeof(int)));
+ if (accept == false)
+ g_idle_add(__bt_send_rfcomm_server_fd, g_memdup(&sock_fd, sizeof(int)));
+ else
+ g_idle_add(__bt_send_rfcomm_server_fd_with_accept, g_memdup(&sock_fd, sizeof(int)));
+
BT_DBG("-");
return sock_fd;
}