| BLUETOOTH(3) | Library Functions Manual | BLUETOOTH(3) |
bt_gethostbyname,
bt_gethostbyaddr,
bt_gethostent,
bt_sethostent,
bt_endhostent,
bt_getprotobyname,
bt_getprotobynumber,
bt_getprotoent,
bt_setprotoent,
bt_endprotoent, bt_aton,
bt_ntoa — Bluetooth host
lookup routines
Bluetooth Library (libbluetooth, -lbluetooth)
#include
<bluetooth.h>
struct hostent *
bt_gethostbyname(const
char *name);
struct hostent *
bt_gethostbyaddr(const
char *addr, int
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);
The
bt_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 Multiplexer referenced by name or
number, respectively.
The name argument
passed to
bt_getprotobyname()
should point to a NUL-terminated Bluetooth Protocol
Service Multiplexer name. The proto argument passed to
bt_getprotobynumber()
should have numeric value of the desired Bluetooth Protocol Service
Multiplexer.
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.
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((const char *)&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);
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_FOUNDNO_RECOVERYThe bt_getprotoent(),
bt_getprotobyname(), and
bt_getprotobynumber() return
NULL on EOF or error.
gethostbyaddr(3), gethostbyname(3), getprotobyname(3), getprotobynumber(3), herror(3), inet_aton(3), inet_ntoa(3)
libbluetooth first appeared in
FreeBSD was ported to NetBSD
4.0 and extended by Iain Hibbert for Itronix,
Inc.
Maksim Yevmenkin
<m_evmenkin@yahoo.com>
Iain Hibbert
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.
These functions use static data storage; if the data is needed for future use, it should be copied before any subsequent calls overwrite it.
| October 25, 2011 | NetBSD 11.0 |