NAME
bt_gethostbyname
,
bt_gethostbyaddr
,
bt_gethostent
,
bt_sethostent
,
bt_endhostent
,
bt_getprotobyname
,
bt_getprotobynumber
,
bt_getprotoent
,
bt_setprotoent
,
bt_endprotoent
, bt_aton
,
bt_ntoa
, bt_devaddr
,
bt_devname
—
Bluetooth routines
LIBRARY
library “libbluetooth”
SYNOPSIS
#include
<bluetooth.h>
struct hostent *
bt_gethostbyname
(const
char *name);
struct hostent *
bt_gethostbyaddr
(const
void *addr, socklen_t
len, int type);
struct hostent *
bt_gethostent
(void);
void
bt_sethostent
(int
stayopen);
void
bt_endhostent
(void);
struct protoent *
bt_getprotobyname
(const
char *name);
struct protoent *
bt_getprotobynumber
(int
proto);
struct protoent *
bt_getprotoent
(void);
void
bt_setprotoent
(int
stayopen);
void
bt_endprotoent
(void);
int
bt_aton
(const
char *str, bdaddr_t
*ba);
const char *
bt_ntoa
(const
bdaddr_t *ba, char
*str);
int
bt_devaddr
(const
char *name, bdaddr_t
*addr);
int
bt_devname
(char
*name, const bdaddr_t
*addr);
DESCRIPTION
Thebt_gethostent
(),
bt_gethostbyname
(), and
bt_gethostbyaddr
() functions each return a pointer to
an object with the hostent structure describing a
Bluetooth host referenced by name or by address, respectively.
The name argument
passed to
bt_gethostbyname
()
should point to a NUL
-terminated hostname. The
addr argument passed to
bt_gethostbyaddr
()
should point to an address which is len bytes long, in
binary form (i.e., not a Bluetooth BD_ADDR in human readable ASCII form).
The type argument specifies the address family of this
address and must be set to AF_BLUETOOTH
.
The structure returned contains the information obtained from a line in /etc/bluetooth/hosts file.
The
bt_sethostent
()
function controls whether /etc/bluetooth/hosts file
should stay open after each call to
bt_gethostbyname
() or
bt_gethostbyaddr
(). If the
stayopen flag is non-zero, the file will not be
closed.
The
bt_endhostent
()
function closes the /etc/bluetooth/hosts file.
The
bt_getprotoent
(),
bt_getprotobyname
(), and
bt_getprotobynumber
() functions each return a
pointer to an object with the protoent structure
describing a Bluetooth Protocol Service Multiplexor referenced by name or
number, respectively.
The name argument
passed to
bt_getprotobyname
()
should point to a NUL
-terminated Bluetooth Protocol
Service Multiplexor name. The proto argument passed to
bt_getprotobynumber
()
should have numeric value of the desired Bluetooth Protocol Service
Multiplexor.
The structure returned contains the information obtained from a line in /etc/bluetooth/protocols file.
The
bt_setprotoent
()
function controls whether /etc/bluetooth/protocols
file should stay open after each call to
bt_getprotobyname
() or
bt_getprotobynumber
(). If the
stayopen flag is non-zero, the file will not be
closed.
The
bt_endprotoent
()
function closes the /etc/bluetooth/protocols
file.
The
bt_aton
()
routine interprets the specified character string as a Bluetooth address,
placing the address into the structure provided. It returns 1 if the string
was successfully interpreted, or 0 if the string is invalid.
The routine
bt_ntoa
()
takes a Bluetooth address and places an ASCII string representing the
address into the buffer provided. It is up to the caller to ensure that
provided buffer has enough space. If no buffer was provided then an internal
static buffer will be used.
The
bt_devaddr
()
function interprets the specified character string as the address or device
name of a Bluetooth device on the local system, and places the device
address in the structure provided, if any. It returns 1 if the string was
successfully interpreted, or 0 if the string did not match any local device.
The
bt_devname
()
function takes a Bluetooth device address and copies the local device name
associated with that address into the buffer provided, if any. It returns 1
when the device was found, otherwise 0.
FILES
- /etc/bluetooth/hosts
- /etc/bluetooth/protocols
EXAMPLES
Print out the hostname associated with a specific BD_ADDR:
const char *bdstr = "00:01:02:03:04:05"; bdaddr_t bd; struct hostent *hp; if (!bt_aton(bdstr, &bd)) errx(1, "can't parse BD_ADDR %s", bdstr); if ((hp = bt_gethostbyaddr(&bd, sizeof(bd), AF_BLUETOOTH)) == NULL) errx(1, "no name associated with %s", bdstr); printf("name associated with %s is %s\n", bdstr, hp->h_name);
DIAGNOSTICS
Error return status from bt_gethostent
(),
bt_gethostbyname
(), and
bt_gethostbyaddr
() is indicated by return of a
NULL
pointer. The external integer
h_errno may then be checked to see whether this is a
temporary failure or an invalid or unknown host. The routine
herror(3) can be used to print an error message describing the
failure. If its argument string is
non-NULL
, it is printed, followed by a colon and a
space. The error message is printed with a trailing newline.
The variable h_errno can have the following values:
HOST_NOT_FOUND
- No such host is known.
NO_RECOVERY
- Some unexpected server failure was encountered. This is a non-recoverable error.
The bt_getprotoent
(),
bt_getprotobyname
(), and
bt_getprotobynumber
() return
NULL
on EOF or error.
SEE ALSO
gethostbyaddr(3), gethostbyname(3), getprotobyname(3), getprotobynumber(3), herror(3), inet_aton(3), inet_ntoa(3)
HISTORY
libbluetooth
first appeared in
FreeBSD was ported to NetBSD
4.0 and extended by Iain Hibbert for Itronix,
Inc. libbluetooth
was imported into
DragonFly 1.11.
AUTHORS
Maksim Yevmenkin
<m_evmenkin@yahoo.com>
Iain Hibbert
CAVEATS
The bt_gethostent
() function reads the
next line of /etc/bluetooth/hosts, opening the file
if necessary.
The bt_sethostent
() function opens and/or
rewinds the /etc/bluetooth/hosts file.
The bt_getprotoent
() function reads the
next line of /etc/bluetooth/protocols, opening the
file if necessary.
The bt_setprotoent
() function opens and/or
rewinds the /etc/bluetooth/protocols file.
BUGS
These functions use static data storage; if the data is needed for future use, it should be copied before any subsequent calls overwrite it.