UNIADDR(3) | FreeBSD Library Functions Manual | UNIADDR(3) |
名称
unimsg, uni_str2nsap, uni_nsap2str, uni_prefix2str, uni_e1642nsap, uni_nsap2e164 — ATM シグナルライブラリ - アドレス操作ライブラリ
Begemot ATM シグナルライブラリ (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);
解説
UNI メッセージライブラリは、NSAP と E.164 アドレスを操作するための多くのユーティリティ関数を含んでいます。関数 uni_str2nsap() は文字列を解析して、NSAP アドレスとしてそれを解釈します。文字列は正確な 40 の 16 進数字 (大文字、小文字も可) と任意の位置のいくつものドットから成るべきです。他のいかなる文字も不正です。結果の NSAP アドレスは nsap によって指されたバッファに書き込まれます。このバッファは少なくとも 20 バイトであるべきです。成功すれば、関数は、0 を返します。構文解析エラーが起こるなら、-1 を返します。
関数 uni_nsap2str() は nsap によって指された NSAP アドレスを文字列に変換します。いくつかの一般的に使用された (先導するオクテット 0x39, 0x45 または 0x47 がある) NSAP 形式において、ドットは、 dots 中に 0 でない値を渡すことによってアドレスをより読み込み可能にするように挿入されます。 str によって指されるバッファは結果の文字列と終端のヌル文字を保持することができるくらい大きくなければなりません。すべての場合で、80 バイトのサイズは十分大きいです。
関数 uni_prefix2str() は、NSAP 接頭辞を文字列に変換します。バイト単位の NSAP 接頭辞の長さは len で渡されます。 uni_nsap2str(str, nsap, dots)
は uni_prefix2str(str, nsap, 20, dots)
と同等です。
関数 uni_e1642nsap() は、ASCII 文字列として与えられた E.164 アドレスを組み込みの E.164 NSAP アドレスに変換します。 e164 によって指された文字列は 15 桁の ASCII 以上ではなく、少なくとも 1 桁で構成されなければなりません。関数は成功すれば 0 を返し、 E.164 アドレスが不正な形式であったなら -1 を返します。
関数 uni_nsap2e164() は組み込みの E.164 NSAP アドレスから E.164 アドレスを抽出します。引数 check は、NSAP アドレスが正しい構文かチェックするべきであるかどうか指定します。 check が 0 であるなら、アドレスの最後の 11 バイトは無視されます。 check が 1 であるなら、セレクタバイトを除いて最後の 11 バイトは、0 でなければなりません。 check が 2 であるなら、最後の 11 バイトは、0 でなければなりません。関数は成功すれば 0 を返し、 NSAP アドレスが組み込みの E.164 NSAP でなかったか追加のチェックの 1 つが失敗したとき -1 が返します。
関連項目
libngatm(3)作者
<harti@FreeBSD.org>June 14, 2005 | FreeBSD |