Re: [PATCH] tools/btproxy: Add -o option

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Szymon,

> This option allows to power off adapter before opening user channel.
> ---
> tools/btproxy.c | 36 ++++++++++++++++++++++++++++++------
> 1 file changed, 30 insertions(+), 6 deletions(-)
> 
> diff --git a/tools/btproxy.c b/tools/btproxy.c
> index 43de037..962abe8 100644
> --- a/tools/btproxy.c
> +++ b/tools/btproxy.c
> @@ -40,10 +40,13 @@
> #include <sys/stat.h>
> #include <sys/socket.h>
> #include <sys/un.h>
> +#include <sys/ioctl.h>
> 
> #include <netdb.h>
> #include <arpa/inet.h>
> 
> +#include "lib/bluetooth.h"
> +#include "lib/hci.h"

I am not in favor of this since I want to start cleaning up the tools to not depend in libbluetooth. Instead this increases the dependencies.

> #include "src/shared/util.h"
> #include "src/shared/mainloop.h"
> #include "src/shared/ecc.h"
> @@ -53,17 +56,13 @@
> #define HCI_AMP		0x01
> 
> #define BTPROTO_HCI	1
> -struct sockaddr_hci {
> -	sa_family_t	hci_family;
> -	unsigned short	hci_dev;
> -	unsigned short  hci_channel;
> -};
> #define HCI_CHANNEL_USER	1
> 
> static uint16_t hci_index = 0;
> static bool client_active = false;
> static bool debug_enabled = false;
> static bool emulate_ecc = false;
> +static bool power_off = false;
> 
> static void hexdump_print(const char *str, void *user_data)
> {
> @@ -515,11 +514,31 @@ static bool setup_proxy(int host_fd, bool host_shutdown,
> 	return true;
> }
> 
> +static int power_off_controler(int index)
> +{
> +	int fd, ret;
> +
> +	fd = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
> +	if (fd < 0)
> +		return -1;
> +
> +	ret = ioctl(fd, HCIDEVDOWN, index);
> +
> +	close(fd);
> +
> +	return ret;
> +}
> +

This is pretty brute-force operation. I am not sure this is actually a good idea. What is wrong that you bring down the adapter first manually before you start btproxy?

Regards

Marcel


--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in



[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux