UNIADDR(3) BSD Library Functions Manual UNIADDR(3)
unimsg, uni_str2nsap, uni_nsap2str, uni_prefix2str, uni_e1642nsap, uni_nsap2e164 -- ATM signalling library - address handling
Begemot ATM signalling library (libunimsg, -lunimsg)
uni_str2nsap(u_char *nsap, const char *str);
uni_nsap2str(char *str, const u_char *nsap, int dots);
uni_prefix2str(char *str, const u_char *prefix, u_int len, int dots);
uni_e1642nsap(u_char *nsap, const char *e164);
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
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 mal-
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>
June 14, 2005 BSD