ネットワークプログラミング相談室 Port28

このエントリーをはてなブックマークに追加
766678
>>756
おそらく質問主(>>669)は、そのように考えていたのだと思う

しかし、今回の64bit版サーバ&クライアント開発のケースでは、
・64bit化に伴なう機能の追加や変更は一切無く(>>715,727)、しかも
・整数値は必ず32bitに格納できる(>>679)
わけだから、(>>732で書いたように)クライアントのOSが32bit/64bitのどちらであっても
(XDRでエンコードされて)ネットワーク上を流れる通信データは32bit表現のままで何も問題は無かった

結論としては、32bit版のコード内にある xdr_u_long の部分を「わざわざ」 xdr_int64_t へと
修正したこと(>>669)そのものが誤りであり、その「余計な行為」がバグを作り込んでしまったと言える
言い換えると、既存の32bit版システムで使われていた通信プロトコル仕様における整数表現形式を
32bitから64bitへと「意図せず」に改変(改悪?)したことになる