u_long is used in all the RPC headers They should be defined correctly like here: http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi/src/include/rpc/#dirlist
example patch: http://cvsup.pt.freebsd.org/cgi-bin/cvsweb/cvsweb.cgi/src/include/rpc/rpc_msg.h.diff?r1=1.5&r2=1.6
We discussed this on IRC. 1) the headers can't change because of binary compatibility requirements 2) the structures in those headers are the host structures, which by no means have to reflect the layout that goes over the wire. tcpdump should use xdrmem* RPC accessors.