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 —
Bluetooth host lookup routines
LIBRARY
Bluetooth Library (libbluetooth, -lbluetooth)
SYNOPSIS
#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);
DESCRIPTION
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.
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((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);
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.
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.