apple bluetooth keyboard

Iain Hibbert plunky at rya-online.net
Tue Mar 7 16:56:17 PST 2006


On Tue, 7 Mar 2006, Maksim Yevmenkin wrote:

> well, this is the completely different can of worms. both hcid (in linux) and
> hcsecd(8) (in freebsd), to some extend, assume that there is only one user.
>
> bluepin is just x11 application. it will display windows on whatever DISPLAY
> is set at the moment.

yes, but hcsecd cannot start it, because hcsecd is a different uid and has
no permissions to access the display..  besides, it is not the function of
a daemon to put windows on the display. Displays belong to users, if there
are any. If they want windows to open, they will run programs that do
that.

> > If user 'blue' wants to enable pin code requests, he can run the pin
> > program (maybe from .login) and it would open the control socket (which
> > can have ownership and permissions specified?) and sleep, listening for
> > pin requests, and wake up with a window when something happens.
> >
> > If user 'red' does not care about bluetooth, she just does nothing and
> > will never be bothered.

> may be. but what if user 'red' also wants to run pin program. now hcsecd(8)
> will have two control pipes. which pipe should it use? should it use both? are
> you suggesting that hcsecd(8) should be configured to redirect pin requests
> from specific devices to specific pipe?

that could be problematic - can a unix domain socket be opened by multiple
users for read/write?

In fact, multiple simultaneous users gets ugly, as sockets in general do
not have access permissions in any case - if user 'blue' opens the
baseband connection, then 'red' can access the device through another
L2CAP or RFCOMM socket (well, they can in my world :)

> btw, what usage scenario do you have in mind that requires multiple users to
> access the same (or multiple) bluetooth devices on the same host?

my thought was that users might be consecutive

> so, i think, the something like bluepin will work just fine. the only issue
> here is that user required to run gui.

well, if you are trying to set up a pairing to another device from a
computer with only a text console, you can always add the pin code to the
config file directly?

then hcsecd could use LOG_NOTICE instead of LOG_DEBUG at this point.

alternatively, a helper application could be run in advance, if hcsecd
would remember a given pin/device combo for N seconds

% tiepin -a phone 1234
% rfcomm_sppd -a phone
<you type in 1234 on phone>

?

I can't think any more, its too late.
iain


More information about the freebsd-bluetooth mailing list