unimsg
, uni_str2nsap
,
uni_nsap2str
, uni_prefix2str
,
uni_e1642nsap
, uni_nsap2e164
—
ATM signalling library - address handling
Begemot ATM signalling library (libunimsg, -lunimsg)
#include <netnatm/addr.h>
int
uni_str2nsap
(u_char
*nsap, const char
*str);
void
uni_nsap2str
(char
*str, const u_char
*nsap, int
dots);
void
uni_prefix2str
(char
*str, const u_char
*prefix, u_int len,
int dots);
int
uni_e1642nsap
(u_char
*nsap, const char
*e164);
int
uni_nsap2e164
(char
*e164, const u_char
*nsap, int
check);
The UNI message library contains a number of utility functions to handle NSAP
and E.164 addresses.
The function uni_str2nsap
() parses a
string and interprets it as an NSAP address. The string should consist of
exact 40 hexadecimal digits (upper and lower case are allowed) and any
number of dots at any position. Any other character is illegal. The
resulting NSAP address is written to the buffer pointed to by
nsap. This buffer should be at least 20 bytes. On
success the funtion returns 0. If an parsing error happens -1 is
returned.
The function uni_nsap2str
() converts the
NSAP address pointed to by nsap into a string. For
some commonly used NSAP formats (those with leading octets 0x39, 0x45 or
0x47) dots may be inserted to make the address more readable by passing a
non-0 value in dots. The buffer pointed to by
str should be large enough to hold the resulting
string plus the terminating NUL. A size of 80 byte is large enough for all
cases.
The function uni_prefix2str
() converts an
NSAP prefix to a string. The length of the NSAP prefix in bytes is passed in
len. uni_nsap2str(str, nsap,
dots)
is equivalent to uni_prefix2str(str, nsap, 20,
dots)
.
The function uni_e1642nsap
() converts an
E.164 address given as an ASCII string to an embedded E.164 NSAP address.
The string pointed to by e164 must consist of at least
1 and not more than 15 ASCII digits. The function returns 0 on success and
-1 if the E.164 address was malformed.
The function uni_nsap2e164
() extracts the
E.164 address from an embedded E.164 NSAP address. The argument
check specifies whether the NSAP address should be
checked for correct syntax. If check is 0 the last 11
bytes of the address are ignored. If check is 1 the
last 11 bytes except the selector byte must be zero. If
check is 2 the last 11 bytes must be zero. The
function returns 0 on success and -1 when the NSAP address was not an
embedded E.164 NSAP or one of the additional checks failed.
Hartmut Brandt ⟨harti@FreeBSD.org⟩