aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-rquota.c
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2010-09-28 05:50:54 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2010-09-28 05:50:54 +0000
commit888227b0d2947b43ffb9ed3ef28bb63d3262c420 (patch)
tree98b06fce923e87676a017fa3160548612c600a0d /epan/dissectors/packet-rquota.c
parent34c9bd4fe639ab41d740ec9474d132ec48324d89 (diff)
update the RQUOTA dissector and add support for version 2 of the protocol
svn path=/trunk/; revision=34270
Diffstat (limited to 'epan/dissectors/packet-rquota.c')
-rw-r--r--epan/dissectors/packet-rquota.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/epan/dissectors/packet-rquota.c b/epan/dissectors/packet-rquota.c
index 4f4efbd0b7..15242b37fb 100644
--- a/epan/dissectors/packet-rquota.c
+++ b/epan/dissectors/packet-rquota.c
@@ -36,8 +36,11 @@
static int proto_rquota = -1;
static int hf_rquota_procedure_v1 = -1;
+static int hf_rquota_procedure_v2 = -1;
static int hf_rquota_pathp = -1;
static int hf_rquota_uid = -1;
+static int hf_rquota_type = -1;
+static int hf_rquota_id = -1;
static int hf_rquota_status = -1;
static int hf_rquota_rquota = -1;
static int hf_rquota_bsize = -1;
@@ -156,10 +159,49 @@ static const value_string rquota1_proc_vals[] = {
{ RQUOTAPROC_NULL, "NULL" },
{ RQUOTAPROC_GETQUOTA, "GETQUOTA" },
{ RQUOTAPROC_GETACTIVEQUOTA, "GETACTIVEQUOTA" },
+ { RQUOTAPROC_SETQUOTA, "SETQUOTA" },
+ { RQUOTAPROC_SETACTIVEQUOTA, "SETACTIVEQUOTA" },
{ 0, NULL }
};
/* end of RQUOTA version 1 */
+
+static int
+dissect_getquota2_call(tvbuff_t *tvb, int offset, packet_info *pinfo _U_, proto_tree *tree)
+{
+ offset = dissect_rpc_string(tvb, tree,
+ hf_rquota_pathp, offset, NULL);
+
+ offset = dissect_rpc_uint32(tvb, tree,
+ hf_rquota_type, offset);
+
+ offset = dissect_rpc_uint32(tvb, tree,
+ hf_rquota_id, offset);
+
+ return offset;
+}
+
+
+static const vsff rquota2_proc[] = {
+ { RQUOTAPROC_NULL, "NULL",
+ NULL, NULL },
+ { RQUOTAPROC_GETQUOTA, "GETQUOTA",
+ dissect_getquota2_call, dissect_getquota_result },
+ { RQUOTAPROC_GETACTIVEQUOTA, "GETACTIVEQUOTA",
+ dissect_getquota2_call, dissect_getquota_result },
+ { 0, NULL,
+ NULL, NULL }
+};
+static const value_string rquota2_proc_vals[] = {
+ { RQUOTAPROC_NULL, "NULL" },
+ { RQUOTAPROC_GETQUOTA, "GETQUOTA" },
+ { RQUOTAPROC_GETACTIVEQUOTA, "GETACTIVEQUOTA" },
+ { RQUOTAPROC_SETQUOTA, "SETQUOTA" },
+ { RQUOTAPROC_SETACTIVEQUOTA, "SETACTIVEQUOTA" },
+ { 0, NULL }
+};
+/* end of RQUOTA version 2 */
+
void
proto_register_rquota(void)
{
@@ -169,9 +211,18 @@ proto_register_rquota(void)
{ &hf_rquota_procedure_v1, {
"V1 Procedure", "rquota.procedure_v1", FT_UINT32, BASE_DEC,
VALS(rquota1_proc_vals), 0, NULL, HFILL }},
+ { &hf_rquota_procedure_v2, {
+ "V2 Procedure", "rquota.procedure_v2", FT_UINT32, BASE_DEC,
+ VALS(rquota2_proc_vals), 0, NULL, HFILL }},
{ &hf_rquota_uid, {
"uid", "rquota.uid", FT_UINT32, BASE_DEC,
NULL, 0, "User ID", HFILL }},
+ { &hf_rquota_type, {
+ "type", "rquota.type", FT_UINT32, BASE_DEC,
+ NULL, 0, "Type", HFILL }},
+ { &hf_rquota_id, {
+ "id", "rquota.id", FT_UINT32, BASE_DEC,
+ NULL, 0, "ID", HFILL }},
{ &hf_rquota_pathp, {
"pathp", "rquota.pathp", FT_STRING, BASE_NONE,
@@ -247,6 +298,7 @@ proto_reg_handoff_rquota(void)
rpc_init_prog(proto_rquota, RQUOTA_PROGRAM, ett_rquota);
/* Register the procedure tables */
rpc_init_proc_table(RQUOTA_PROGRAM, 1, rquota1_proc, hf_rquota_procedure_v1);
+ rpc_init_proc_table(RQUOTA_PROGRAM, 2, rquota2_proc, hf_rquota_procedure_v2);
}