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
)
int
bt_devaddr(
const char *name
, bdaddr_t *addr
)
int
bt_devname(
char *name
, const bdaddr_t *addr
)
),
bt_gethostbyname(
),
and
bt_gethostbyaddr(
)
functions each return a pointer to an object with the
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
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.
/etc/bluetooth/hosts
/etc/bluetooth/protocols
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);
),
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_RECOVERY
The
bt_getprotoent(),
bt_getprotobyname(
),
and
bt_getprotobynumber(
)
return
NULL
on EOF or error.
)
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.