bluetooth(3)
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 - routines
LIBRARY
library ``libbluetooth''
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 struc - ture describing
a Bluetooth host referenced by name or by address, respec - tively.
- 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 bina - ry 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 refer - enced 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 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 %s0, 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 en
- countered. 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)
CAVEAT
- 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.
AUTHORS
Maksim Yevmenkin <m_evmenkin@yahoo.com>
BUGS
- These functions use static data storage; if the data is
- needed for future
use, it should be copied before any subsequent calls over - write it.
- BSD May 7, 2003