#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 からそのまま持ってきたのを 吟味せずに使っていたけど、こんなのがあったのかー。報告ありがとうございました。他の構造体も 見直すとするか。…これだけかな。とりあえず修正。