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

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

 



Hi Marcel,

On Friday 19 of June 2015 12:49:54 Marcel Holtmann wrote:
> 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.

So we should have local defines? like 'struct sockaddr_hci' below?

> > #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?

This is mainly for convenience, some agents (eg Bluedevil from KDE) always 
power on new adapter. If I pass btproxy socket to eg QEMU and user channel 
open fail and it is too late to notify QEMU that adapter is not available 
since socket is already connected.

-- 
BR
Szymon Janc
--
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