#20-02 libinet 0.2 bug
昨日書いた NFS client を作っている JG1VVP さんより libinet/include/netinet/in.h で定義している、おなじみの
sockaddr_in 構造体の compatibility 問題が報告された。
本来であれば
struct sockaddr_in {
u_char sin_len;
u_char sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
なのであるが、Human68k オリジナルの ESP/X ヘッダでは
struct sockaddr_in
{
short sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
になっているのだ。bind() 時に問題になるとのこと。なるほど、NetBSD からそのまま持ってきたのを 吟味せずに使っていたけど、こんなのがあったのかー。報告ありがとうございました。他の構造体も 見直すとするか。…これだけかな。とりあえず修正。