@subsection What do I need to use the Bluetooth plugin transport?
@c %**end of header
-If you are a Linux user and you want to use the Bluetooth transport plugin
-you should install the BlueZ development libraries (if they aren't already
-installed). For instructions about how to install the libraries you should
+If you are a GNU/Linux user and you want to use the Bluetooth
+transport plugin you should install the
+@command{BlueZ development libraries} (if they aren't already
+installed).
+For instructions about how to install the libraries you should
check out the BlueZ site
(@uref{http://www.bluez.org/, http://www.bluez.org}). If you don't know if
you have the necesarry libraries, don't worry, just run the GNUnet
plugin and only the helper binary is different. The helper takes a single
argument, which represents the interface name and is specified in the
configuration file. Here are the basic steps that are followed by the
-helper binary used on Linux:
+helper binary used on GNU/Linux:
@itemize @bullet
@item it verifies if the name corresponds to a Bluetooth interface name
@subsection How do I configure my peer2?
@c %**end of header
-On Linux, you just have to be sure that the interface name corresponds to
-the one that you want to use. Use the @code{hciconfig} tool to check that.
+On GNU/Linux, you just have to be sure that the interface name
+corresponds to the one that you want to use.
+Use the @code{hciconfig} tool to check that.
By default it is set to hci0 but you can change it.
A basic configuration looks like this:
@subsection How can I test it?
@c %**end of header
-If you have two Bluetooth devices on the same machine which use Linux you
-must:
+If you have two Bluetooth devices on the same machine and you are using
+GNU/Linux you must:
@itemize @bullet
directions between the Bluetooth interface and stdin/stdout of the
process involved.
-The Bluetooth plugin transport could be used both on Linux and Windows
+The Bluetooth plugin transport could be used both on GNU/Linux and Windows
platforms.
@itemize @bullet
@subsubsection Linux functionality
@c %**end of header
-In order to implement the plugin functionality on Linux I used the BlueZ
-stack. For the communication with the other devices I used the RFCOMM
+In order to implement the plugin functionality on GNU/Linux I
+used the BlueZ stack.
+For the communication with the other devices I used the RFCOMM
protocol. Also I used the HCI protocol to gain some control over the
device. The helper binary takes a single argument (the name of the
Bluetooth interface) and is separated in two stages:
(especially the @emph{ws2bth} header).
Besides the fact that it uses the Windows Sockets, the Windows
-implemenation follows the same principles as the Linux one:
+implemenation follows the same principles as the GNU/Linux one:
@itemize @bullet
@item It has a initalization part where it initializes the
and I generated the @emph{Universally Unique Identifier} with the
@emph{guidgen.exe} Windows's tool.
-In the loop section the only difference from the Linux implementation is
-that I used the GNUNET_NETWORK library for functions like @emph{accept},
-@emph{bind}, @emph{connect} or @emph{select}. I decided to use the
-GNUNET_NETWORK library because I also needed to interact with the STDIN
-and STDOUT handles and on Windows the select function is only defined for
-sockets, and it will not work for arbitrary file handles.
-
-Another difference between Linux and Windows implementation is that in
-Linux, the Bluetooth address is represented in 48 bits while in Windows is
-represented in 64 bits. Therefore I had to do some changes on
-@emph{plugin_transport_wlan} header.
+In the loop section the only difference from the GNU/Linux implementation
+is that I used the @code{GNUNET_NETWORK} library for
+functions like @emph{accept}, @emph{bind}, @emph{connect} or
+@emph{select}. I decided to use the
+@code{GNUNET_NETWORK} library because I also needed to interact
+with the STDIN and STDOUT handles and on Windows
+the select function is only defined for sockets,
+and it will not work for arbitrary file handles.
+
+Another difference between GNU/Linux and Windows implementation is that in
+GNU/Linux, the Bluetooth address is represented in 48 bits
+while in Windows is represented in 64 bits.
+Therefore I had to do some changes on @emph{plugin_transport_wlan} header.
Also, currently on Windows the Bluetooth plugin doesn't have support for
broadcast messages. When it receives a broadcast message it will skip it.