diff options
author | Guy Harris <guy@alum.mit.edu> | 2017-12-15 12:21:29 -0800 |
---|---|---|
committer | Guy Harris <guy@alum.mit.edu> | 2017-12-15 12:21:50 -0800 |
commit | 0489e347dc390e653f020ed540ec2d92e08841e3 (patch) | |
tree | 68367ee11b1bdc2e0d7fd475e70dcc776328f71e | |
parent | 1a04b92e365f5ed01ca38619b41bcc4fc9cbd63c (diff) | |
download | tcpdump-0489e347dc390e653f020ed540ec2d92e08841e3.tar.gz |
Use nd_ types for ONC RPC.
We don't do this for NFS; that'd require more work. The NFS dissector
is already using EXTRACT_ calls for the NFS message.
-rw-r--r-- | nfs.h | 10 | ||||
-rw-r--r-- | rpc_auth.h | 4 | ||||
-rw-r--r-- | rpc_msg.h | 22 |
3 files changed, 22 insertions, 14 deletions
@@ -248,7 +248,15 @@ typedef enum { NFNON=0, NFREG=1, NFDIR=2, NFBLK=3, NFCHR=4, NFLNK=5, NFSOCK=6, NFFIFO=7 } nfs_type; -/* Structs for common parts of the rpc's */ +/* + * Structs for common parts of the rpc's + * + * NOTE: these structures are not always overlaid directly on the + * packet data - sometimes we declare a local variable of that type, + * and fill it up with fields extracted using byte pointers - so we + * don't use nd_ types for their members. + */ + /* * File Handle (32 bytes for version 2), variable up to 64 for version 3. * File Handles of up to NFS_SMALLFH in size are stored directly in the @@ -65,8 +65,8 @@ enum sunrpc_auth_stat { * Authentication info. Opaque to client. */ struct sunrpc_opaque_auth { - uint32_t oa_flavor; /* flavor of auth */ - uint32_t oa_len; /* length of opaque body */ + nd_uint32_t oa_flavor; /* flavor of auth */ + nd_uint32_t oa_len; /* length of opaque body */ /* zero or more bytes of body */ }; @@ -78,13 +78,13 @@ enum sunrpc_reject_stat { * Reply to an rpc request that was rejected by the server. */ struct sunrpc_rejected_reply { - uint32_t rj_stat; /* enum reject_stat */ + nd_uint32_t rj_stat; /* enum reject_stat */ union { struct { - uint32_t low; - uint32_t high; + nd_uint32_t low; + nd_uint32_t high; } RJ_versions; - uint32_t RJ_why; /* enum auth_stat - why authentication did not work */ + nd_uint32_t RJ_why; /* enum auth_stat - why authentication did not work */ } ru; #define rj_vers ru.RJ_versions #define rj_why ru.RJ_why @@ -94,7 +94,7 @@ struct sunrpc_rejected_reply { * Body of a reply to an rpc request. */ struct sunrpc_reply_body { - uint32_t rp_stat; /* enum reply_stat */ + nd_uint32_t rp_stat; /* enum reply_stat */ struct sunrpc_rejected_reply rp_reject; /* if rejected */ }; @@ -102,10 +102,10 @@ struct sunrpc_reply_body { * Body of an rpc request call. */ struct sunrpc_call_body { - uint32_t cb_rpcvers; /* must be equal to two */ - uint32_t cb_prog; - uint32_t cb_vers; - uint32_t cb_proc; + nd_uint32_t cb_rpcvers; /* must be equal to two */ + nd_uint32_t cb_prog; + nd_uint32_t cb_vers; + nd_uint32_t cb_proc; struct sunrpc_opaque_auth cb_cred; /* followed by opaque verifier */ }; @@ -114,8 +114,8 @@ struct sunrpc_call_body { * The rpc message */ struct sunrpc_msg { - uint32_t rm_xid; - uint32_t rm_direction; /* enum msg_type */ + nd_uint32_t rm_xid; + nd_uint32_t rm_direction; /* enum msg_type */ union { struct sunrpc_call_body RM_cmb; struct sunrpc_reply_body RM_rmb; |