summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-12-15 12:21:29 -0800
committerGuy Harris <guy@alum.mit.edu>2017-12-15 12:21:50 -0800
commit0489e347dc390e653f020ed540ec2d92e08841e3 (patch)
tree68367ee11b1bdc2e0d7fd475e70dcc776328f71e
parent1a04b92e365f5ed01ca38619b41bcc4fc9cbd63c (diff)
downloadtcpdump-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.h10
-rw-r--r--rpc_auth.h4
-rw-r--r--rpc_msg.h22
3 files changed, 22 insertions, 14 deletions
diff --git a/nfs.h b/nfs.h
index da7bc508..2e55569d 100644
--- a/nfs.h
+++ b/nfs.h
@@ -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
diff --git a/rpc_auth.h b/rpc_auth.h
index 3cc9b30c..3385ab9d 100644
--- a/rpc_auth.h
+++ b/rpc_auth.h
@@ -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 */
};
diff --git a/rpc_msg.h b/rpc_msg.h
index 88e7319b..e49474ea 100644
--- a/rpc_msg.h
+++ b/rpc_msg.h
@@ -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;