From 7d1a86d8c4023ba53ddf410e5820f22c8724d906 Mon Sep 17 00:00:00 2001 From: Michael Mann Date: Thu, 2 Jul 2015 00:02:16 -0400 Subject: Have RPC dissector use real dissector tables for its subdissectors instead of a "homegrown" method. Change-Id: I06d7d4e9747ed8593cf40506cae3a09ae237846b Reviewed-on: https://code.wireshark.org/review/9456 Petri-Dish: Michael Mann Reviewed-by: Anders Broman --- epan/dissectors/packet-bootparams.c | 2 +- epan/dissectors/packet-clearcase.c | 2 +- epan/dissectors/packet-fmp.c | 2 +- epan/dissectors/packet-fmp_notify.c | 2 +- epan/dissectors/packet-gluster_cli.c | 4 +- epan/dissectors/packet-gluster_pmap.c | 4 +- epan/dissectors/packet-glusterd.c | 10 +-- epan/dissectors/packet-glusterfs.c | 4 +- epan/dissectors/packet-glusterfs_hndsk.c | 6 +- epan/dissectors/packet-hclnfsd.c | 2 +- epan/dissectors/packet-kadm5.c | 2 +- epan/dissectors/packet-klm.c | 2 +- epan/dissectors/packet-mount.c | 8 +- epan/dissectors/packet-nfs.c | 10 +-- epan/dissectors/packet-nfsacl.c | 6 +- epan/dissectors/packet-nfsauth.c | 2 +- epan/dissectors/packet-nisplus.c | 4 +- epan/dissectors/packet-nlm.c | 8 +- epan/dissectors/packet-pcnfsd.c | 4 +- epan/dissectors/packet-portmap.c | 8 +- epan/dissectors/packet-rpc.c | 133 ++++++++++++++----------------- epan/dissectors/packet-rpc.h | 14 +--- epan/dissectors/packet-rquota.c | 4 +- epan/dissectors/packet-rstat.c | 8 +- epan/dissectors/packet-rwall.c | 2 +- epan/dissectors/packet-sadmind.c | 6 +- epan/dissectors/packet-spray.c | 2 +- epan/dissectors/packet-stat-notify.c | 2 +- epan/dissectors/packet-stat.c | 2 +- epan/dissectors/packet-teklink.c | 2 +- epan/dissectors/packet-vxi11.c | 6 +- epan/dissectors/packet-ypbind.c | 4 +- epan/dissectors/packet-yppasswd.c | 2 +- epan/dissectors/packet-ypserv.c | 4 +- epan/dissectors/packet-ypxfr.c | 2 +- 35 files changed, 131 insertions(+), 154 deletions(-) (limited to 'epan/dissectors') diff --git a/epan/dissectors/packet-bootparams.c b/epan/dissectors/packet-bootparams.c index f04f16baef..d3fde4dc21 100644 --- a/epan/dissectors/packet-bootparams.c +++ b/epan/dissectors/packet-bootparams.c @@ -193,7 +193,7 @@ proto_reg_handoff_bootparams(void) /* Register the protocol as RPC */ rpc_init_prog(proto_bootparams, BOOTPARAMS_PROGRAM, ett_bootparams); /* Register the procedure tables */ - rpc_init_proc_table(BOOTPARAMS_PROGRAM, 1, bootparams1_proc, hf_bootparams_procedure_v1); + rpc_init_proc_table(proto_bootparams, BOOTPARAMS_PROGRAM, 1, bootparams1_proc, hf_bootparams_procedure_v1); } /* diff --git a/epan/dissectors/packet-clearcase.c b/epan/dissectors/packet-clearcase.c index 139aa7ed3d..00c86225c2 100644 --- a/epan/dissectors/packet-clearcase.c +++ b/epan/dissectors/packet-clearcase.c @@ -74,7 +74,7 @@ proto_reg_handoff_clearcase(void) /* Register the protocol as RPC */ rpc_init_prog(proto_clearcase, CLEARCASE_PROGRAM, ett_clearcase); /* Register the procedure tables */ - rpc_init_proc_table(CLEARCASE_PROGRAM, 3, clearcase3_proc, hf_clearcase_procedure_v3); + rpc_init_proc_table(proto_clearcase, CLEARCASE_PROGRAM, 3, clearcase3_proc, hf_clearcase_procedure_v3); } /* diff --git a/epan/dissectors/packet-fmp.c b/epan/dissectors/packet-fmp.c index 1b4be65db9..569d7c9a88 100644 --- a/epan/dissectors/packet-fmp.c +++ b/epan/dissectors/packet-fmp.c @@ -2296,7 +2296,7 @@ proto_reg_handoff_fmp(void) rpc_init_prog(proto_fmp, FMP_PROGRAM, ett_fmp); /* Register the procedure tables */ - rpc_init_proc_table(FMP_PROGRAM, FMP_VERSION_3, fmp3_proc, hf_fmp_procedure); + rpc_init_proc_table(proto_fmp, FMP_PROGRAM, FMP_VERSION_3, fmp3_proc, hf_fmp_procedure); } /* diff --git a/epan/dissectors/packet-fmp_notify.c b/epan/dissectors/packet-fmp_notify.c index 4035711b12..a1183a9ac2 100644 --- a/epan/dissectors/packet-fmp_notify.c +++ b/epan/dissectors/packet-fmp_notify.c @@ -611,7 +611,7 @@ proto_reg_handoff_fmp_notify(void) rpc_init_prog(proto_fmp_notify, FMP_NOTIFY_PROG, ett_fmp_notify); /* Register the procedure tables */ - rpc_init_proc_table(FMP_NOTIFY_PROG, FMP_NOTIFY_VERSION_2, + rpc_init_proc_table(proto_fmp_notify, FMP_NOTIFY_PROG, FMP_NOTIFY_VERSION_2, fmp_notify2_proc,hf_fmp_notify_procedure); } diff --git a/epan/dissectors/packet-gluster_cli.c b/epan/dissectors/packet-gluster_cli.c index 2e0756f951..2ae565d135 100644 --- a/epan/dissectors/packet-gluster_cli.c +++ b/epan/dissectors/packet-gluster_cli.c @@ -547,9 +547,9 @@ void proto_reg_handoff_gluster_cli(void) { rpc_init_prog(proto_gluster_cli, GLUSTER_CLI_PROGRAM, ett_gluster_cli); - rpc_init_proc_table(GLUSTER_CLI_PROGRAM, 1, gluster_cli_proc, + rpc_init_proc_table(proto_gluster_cli, GLUSTER_CLI_PROGRAM, 1, gluster_cli_proc, hf_gluster_cli_proc); - rpc_init_proc_table(GLUSTER_CLI_PROGRAM, 2, gluster_cli_2_proc, + rpc_init_proc_table(proto_gluster_cli, GLUSTER_CLI_PROGRAM, 2, gluster_cli_2_proc, hf_gluster_cli_2_proc); } diff --git a/epan/dissectors/packet-gluster_pmap.c b/epan/dissectors/packet-gluster_pmap.c index be12d63931..2ea0fc477c 100644 --- a/epan/dissectors/packet-gluster_pmap.c +++ b/epan/dissectors/packet-gluster_pmap.c @@ -214,7 +214,7 @@ proto_reg_handoff_gluster_pmap(void) { rpc_init_prog(proto_gluster_pmap, GLUSTER_PMAP_PROGRAM, ett_gluster_pmap); - rpc_init_proc_table(GLUSTER_PMAP_PROGRAM, 1, gluster_pmap_proc, + rpc_init_proc_table(proto_gluster_pmap, GLUSTER_PMAP_PROGRAM, 1, gluster_pmap_proc, hf_gluster_pmap_proc); } @@ -264,7 +264,7 @@ proto_reg_handoff_gluster_dump(void) { rpc_init_prog(proto_gluster_dump, GLUSTER_DUMP_PROGRAM, ett_gluster_dump); - rpc_init_proc_table(GLUSTER_DUMP_PROGRAM, 1, gluster_dump_proc, + rpc_init_proc_table(proto_gluster_dump, GLUSTER_DUMP_PROGRAM, 1, gluster_dump_proc, hf_gluster_dump_proc); } diff --git a/epan/dissectors/packet-glusterd.c b/epan/dissectors/packet-glusterd.c index c142d6b440..fd1bb263a1 100644 --- a/epan/dissectors/packet-glusterd.c +++ b/epan/dissectors/packet-glusterd.c @@ -874,17 +874,17 @@ void proto_reg_handoff_gluster_gd_mgmt(void) { rpc_init_prog(proto_gd_mgmt, GD_MGMT_PROGRAM, ett_gd_mgmt); - rpc_init_proc_table(GD_MGMT_PROGRAM, 1, gd_mgmt_proc, hf_gd_mgmt_proc); - rpc_init_proc_table(GD_MGMT_PROGRAM, 2, gd_mgmt_2_proc, + rpc_init_proc_table(proto_gd_mgmt, GD_MGMT_PROGRAM, 1, gd_mgmt_proc, hf_gd_mgmt_proc); + rpc_init_proc_table(proto_gd_mgmt, GD_MGMT_PROGRAM, 2, gd_mgmt_2_proc, hf_gd_mgmt_2_proc); - rpc_init_proc_table(GD_MGMT_PROGRAM, 3, gd_mgmt_3_proc, + rpc_init_proc_table(proto_gd_mgmt, GD_MGMT_PROGRAM, 3, gd_mgmt_3_proc, hf_gd_mgmt_3_proc); rpc_init_prog(proto_gd_brick, GD_BRICK_PROGRAM, ett_gd_brick); - rpc_init_proc_table(GD_BRICK_PROGRAM, 2, gd_mgmt_brick_2_proc, + rpc_init_proc_table(proto_gd_brick, GD_BRICK_PROGRAM, 2, gd_mgmt_brick_2_proc, hf_gd_mgmt_brick_2_proc); rpc_init_prog(proto_gd_friend, GD_FRIEND_PROGRAM, ett_gd_friend); - rpc_init_proc_table(GD_FRIEND_PROGRAM, 2,glusterd_friend_proc, + rpc_init_proc_table(proto_gd_friend, GD_FRIEND_PROGRAM, 2,glusterd_friend_proc, hf_glusterd_friend_proc); } diff --git a/epan/dissectors/packet-glusterfs.c b/epan/dissectors/packet-glusterfs.c index e072143d06..1d70f93d2c 100644 --- a/epan/dissectors/packet-glusterfs.c +++ b/epan/dissectors/packet-glusterfs.c @@ -2855,9 +2855,9 @@ void proto_reg_handoff_glusterfs(void) { rpc_init_prog(proto_glusterfs, GLUSTER3_1_FOP_PROGRAM, ett_glusterfs); - rpc_init_proc_table(GLUSTER3_1_FOP_PROGRAM, 310, glusterfs3_1_fop_proc, + rpc_init_proc_table(proto_glusterfs, GLUSTER3_1_FOP_PROGRAM, 310, glusterfs3_1_fop_proc, hf_glusterfs_proc); - rpc_init_proc_table(GLUSTER3_1_FOP_PROGRAM, 330, glusterfs3_3_fop_proc, + rpc_init_proc_table(proto_glusterfs, GLUSTER3_1_FOP_PROGRAM, 330, glusterfs3_3_fop_proc, hf_glusterfs_proc); } diff --git a/epan/dissectors/packet-glusterfs_hndsk.c b/epan/dissectors/packet-glusterfs_hndsk.c index bc6f407afa..a0f5b64a14 100644 --- a/epan/dissectors/packet-glusterfs_hndsk.c +++ b/epan/dissectors/packet-glusterfs_hndsk.c @@ -290,9 +290,9 @@ proto_reg_handoff_gluster_hndsk(void) { rpc_init_prog(proto_gluster_hndsk, GLUSTER_HNDSK_PROGRAM, ett_gluster_hndsk); - rpc_init_proc_table(GLUSTER_HNDSK_PROGRAM, 1, gluster_hndsk_proc, + rpc_init_proc_table(proto_gluster_hndsk, GLUSTER_HNDSK_PROGRAM, 1, gluster_hndsk_proc, hf_gluster_hndsk_proc); - rpc_init_proc_table(GLUSTER_HNDSK_PROGRAM, 2, gluster_hndsk_2_proc, + rpc_init_proc_table(proto_gluster_hndsk, GLUSTER_HNDSK_PROGRAM, 2, gluster_hndsk_2_proc, hf_gluster_hndsk_proc); } @@ -339,7 +339,7 @@ void proto_reg_handoff_gluster_cbk(void) { rpc_init_prog(proto_gluster_cbk, GLUSTER_CBK_PROGRAM, ett_gluster_cbk); - rpc_init_proc_table(GLUSTER_CBK_PROGRAM, 1, gluster_cbk_proc, + rpc_init_proc_table(proto_gluster_cbk, GLUSTER_CBK_PROGRAM, 1, gluster_cbk_proc, hf_gluster_cbk_proc); } diff --git a/epan/dissectors/packet-hclnfsd.c b/epan/dissectors/packet-hclnfsd.c index c4a249987d..e0aeab36d8 100644 --- a/epan/dissectors/packet-hclnfsd.c +++ b/epan/dissectors/packet-hclnfsd.c @@ -906,7 +906,7 @@ proto_reg_handoff_hclnfsd(void) rpc_init_prog(proto_hclnfsd, HCLNFSD_PROGRAM, ett_hclnfsd); /* Register the procedure tables */ - rpc_init_proc_table(HCLNFSD_PROGRAM, 1, hclnfsd1_proc, hf_hclnfsd_procedure_v1); + rpc_init_proc_table(proto_hclnfsd, HCLNFSD_PROGRAM, 1, hclnfsd1_proc, hf_hclnfsd_procedure_v1); } /* diff --git a/epan/dissectors/packet-kadm5.c b/epan/dissectors/packet-kadm5.c index d0b1a23bf1..55fc371dcc 100644 --- a/epan/dissectors/packet-kadm5.c +++ b/epan/dissectors/packet-kadm5.c @@ -140,7 +140,7 @@ proto_reg_handoff_kadm5(void) /* Register the protocol as RPC */ rpc_init_prog(proto_kadm5, KADM5_PROGRAM, ett_kadm5); /* Register the procedure tables */ - rpc_init_proc_table(KADM5_PROGRAM, 2, kadm5_v2_proc, + rpc_init_proc_table(proto_kadm5, KADM5_PROGRAM, 2, kadm5_v2_proc, hf_kadm5_procedure_v2); } diff --git a/epan/dissectors/packet-klm.c b/epan/dissectors/packet-klm.c index 5538cd67dd..29fbee91df 100644 --- a/epan/dissectors/packet-klm.c +++ b/epan/dissectors/packet-klm.c @@ -256,7 +256,7 @@ proto_reg_handoff_klm(void) /* Register the protocol as RPC */ rpc_init_prog(proto_klm, KLM_PROGRAM, ett_klm); /* Register the procedure tables */ - rpc_init_proc_table(KLM_PROGRAM, 1, klm1_proc, hf_klm_procedure_v1); + rpc_init_proc_table(proto_klm, KLM_PROGRAM, 1, klm1_proc, hf_klm_procedure_v1); } /* diff --git a/epan/dissectors/packet-mount.c b/epan/dissectors/packet-mount.c index cb3dec6e29..3ffdeba210 100644 --- a/epan/dissectors/packet-mount.c +++ b/epan/dissectors/packet-mount.c @@ -1028,10 +1028,10 @@ proto_reg_handoff_mount(void) rpc_init_prog(proto_mount, MOUNT_PROGRAM, ett_mount); rpc_init_prog(proto_sgi_mount, SGI_MOUNT_PROGRAM, ett_mount); /* Register the procedure tables */ - rpc_init_proc_table(MOUNT_PROGRAM, 1, mount1_proc, hf_mount_procedure_v1); - rpc_init_proc_table(MOUNT_PROGRAM, 2, mount2_proc, hf_mount_procedure_v2); - rpc_init_proc_table(MOUNT_PROGRAM, 3, mount3_proc, hf_mount_procedure_v3); - rpc_init_proc_table(SGI_MOUNT_PROGRAM, 1, sgi_mount1_proc, hf_sgi_mount_procedure_v1); + rpc_init_proc_table(proto_mount, MOUNT_PROGRAM, 1, mount1_proc, hf_mount_procedure_v1); + rpc_init_proc_table(proto_mount, MOUNT_PROGRAM, 2, mount2_proc, hf_mount_procedure_v2); + rpc_init_proc_table(proto_mount, MOUNT_PROGRAM, 3, mount3_proc, hf_mount_procedure_v3); + rpc_init_proc_table(proto_sgi_mount, SGI_MOUNT_PROGRAM, 1, sgi_mount1_proc, hf_sgi_mount_procedure_v1); } /* diff --git a/epan/dissectors/packet-nfs.c b/epan/dissectors/packet-nfs.c index 1e7ef7cd95..8f21f497db 100644 --- a/epan/dissectors/packet-nfs.c +++ b/epan/dissectors/packet-nfs.c @@ -10300,8 +10300,8 @@ void reg_callback(int cbprog) * but some Linux kernels set this field to 1. "Temporarily", * accommodate these servers. */ - rpc_init_proc_table(cbprog, 1, nfs_cb_proc, hf_nfs4_cb_procedure); - rpc_init_proc_table(cbprog, 4, nfs_cb_proc, hf_nfs4_cb_procedure); + rpc_init_proc_table(proto_nfs, cbprog, 1, nfs_cb_proc, hf_nfs4_cb_procedure); + rpc_init_proc_table(proto_nfs, cbprog, 4, nfs_cb_proc, hf_nfs4_cb_procedure); } void @@ -12661,9 +12661,9 @@ proto_reg_handoff_nfs(void) rpc_init_prog(proto_nfs, NFS_PROGRAM, ett_nfs); /* Register the procedure tables */ - rpc_init_proc_table(NFS_PROGRAM, 2, nfs2_proc, hf_nfs2_procedure); - rpc_init_proc_table(NFS_PROGRAM, 3, nfs3_proc, hf_nfs3_procedure); - rpc_init_proc_table(NFS_PROGRAM, 4, nfs4_proc, hf_nfs4_procedure); + rpc_init_proc_table(proto_nfs, NFS_PROGRAM, 2, nfs2_proc, hf_nfs2_procedure); + rpc_init_proc_table(proto_nfs, NFS_PROGRAM, 3, nfs3_proc, hf_nfs3_procedure); + rpc_init_proc_table(proto_nfs, NFS_PROGRAM, 4, nfs4_proc, hf_nfs4_procedure); fhandle_handle = create_dissector_handle(dissect_fhandle_data_SVR4, proto_nfs); dissector_add_uint("nfs_fhandle.type", FHT_SVR4, fhandle_handle); diff --git a/epan/dissectors/packet-nfsacl.c b/epan/dissectors/packet-nfsacl.c index f0494a42ee..d32f0dce71 100644 --- a/epan/dissectors/packet-nfsacl.c +++ b/epan/dissectors/packet-nfsacl.c @@ -590,9 +590,9 @@ proto_reg_handoff_nfsacl(void) /* Register the protocol as RPC */ rpc_init_prog(proto_nfsacl, NFSACL_PROGRAM, ett_nfsacl); /* Register the procedure tables */ - rpc_init_proc_table(NFSACL_PROGRAM, 1, nfsacl1_proc, hf_nfsacl_procedure_v1); - rpc_init_proc_table(NFSACL_PROGRAM, 2, nfsacl2_proc, hf_nfsacl_procedure_v2); - rpc_init_proc_table(NFSACL_PROGRAM, 3, nfsacl3_proc, hf_nfsacl_procedure_v3); + rpc_init_proc_table(proto_nfsacl, NFSACL_PROGRAM, 1, nfsacl1_proc, hf_nfsacl_procedure_v1); + rpc_init_proc_table(proto_nfsacl, NFSACL_PROGRAM, 2, nfsacl2_proc, hf_nfsacl_procedure_v2); + rpc_init_proc_table(proto_nfsacl, NFSACL_PROGRAM, 3, nfsacl3_proc, hf_nfsacl_procedure_v3); } /* diff --git a/epan/dissectors/packet-nfsauth.c b/epan/dissectors/packet-nfsauth.c index b93ea718a1..9ff54e2d31 100644 --- a/epan/dissectors/packet-nfsauth.c +++ b/epan/dissectors/packet-nfsauth.c @@ -78,7 +78,7 @@ proto_reg_handoff_nfsauth(void) /* Register the protocol as RPC */ rpc_init_prog(proto_nfsauth, NFSAUTH_PROGRAM, ett_nfsauth); /* Register the procedure tables */ - rpc_init_proc_table(NFSAUTH_PROGRAM, 1, nfsauth1_proc, hf_nfsauth_procedure_v1); + rpc_init_proc_table(proto_nfsauth, NFSAUTH_PROGRAM, 1, nfsauth1_proc, hf_nfsauth_procedure_v1); } /* diff --git a/epan/dissectors/packet-nisplus.c b/epan/dissectors/packet-nisplus.c index d2bba0af28..ee4296fb54 100644 --- a/epan/dissectors/packet-nisplus.c +++ b/epan/dissectors/packet-nisplus.c @@ -1834,7 +1834,7 @@ proto_reg_handoff_nis(void) /* Register the protocol as RPC */ rpc_init_prog(proto_nisplus, NIS_PROGRAM, ett_nisplus); /* Register the procedure tables */ - rpc_init_proc_table(NIS_PROGRAM, 3, nisplus3_proc, hf_nisplus_procedure_v3); + rpc_init_proc_table(proto_nisplus, NIS_PROGRAM, 3, nisplus3_proc, hf_nisplus_procedure_v3); } @@ -1934,7 +1934,7 @@ proto_reg_handoff_niscb(void) /* Register the protocol as RPC */ rpc_init_prog(proto_nispluscb, CB_PROGRAM, ett_nispluscb); /* Register the procedure tables */ - rpc_init_proc_table(CB_PROGRAM, 1, cb1_proc, hf_nispluscb_procedure_v1); + rpc_init_proc_table(proto_nispluscb, CB_PROGRAM, 1, cb1_proc, hf_nispluscb_procedure_v1); } /* diff --git a/epan/dissectors/packet-nlm.c b/epan/dissectors/packet-nlm.c index ef93817be2..c5b80aea66 100644 --- a/epan/dissectors/packet-nlm.c +++ b/epan/dissectors/packet-nlm.c @@ -1229,10 +1229,10 @@ proto_reg_handoff_nlm(void) /* Register the protocol as RPC */ rpc_init_prog(proto_nlm, NLM_PROGRAM, ett_nlm); /* Register the procedure tables */ - rpc_init_proc_table(NLM_PROGRAM, 1, nlm1_proc, hf_nlm_procedure_v1); - rpc_init_proc_table(NLM_PROGRAM, 2, nlm2_proc, hf_nlm_procedure_v2); - rpc_init_proc_table(NLM_PROGRAM, 3, nlm3_proc, hf_nlm_procedure_v3); - rpc_init_proc_table(NLM_PROGRAM, 4, nlm4_proc, hf_nlm_procedure_v4); + rpc_init_proc_table(proto_nlm, NLM_PROGRAM, 1, nlm1_proc, hf_nlm_procedure_v1); + rpc_init_proc_table(proto_nlm, NLM_PROGRAM, 2, nlm2_proc, hf_nlm_procedure_v2); + rpc_init_proc_table(proto_nlm, NLM_PROGRAM, 3, nlm3_proc, hf_nlm_procedure_v3); + rpc_init_proc_table(proto_nlm, NLM_PROGRAM, 4, nlm4_proc, hf_nlm_procedure_v4); } /* diff --git a/epan/dissectors/packet-pcnfsd.c b/epan/dissectors/packet-pcnfsd.c index 0e7602e981..758c410b34 100644 --- a/epan/dissectors/packet-pcnfsd.c +++ b/epan/dissectors/packet-pcnfsd.c @@ -418,8 +418,8 @@ proto_reg_handoff_pcnfsd(void) /* Register the protocol as RPC */ rpc_init_prog(proto_pcnfsd, PCNFSD_PROGRAM, ett_pcnfsd); /* Register the procedure tables */ - rpc_init_proc_table(PCNFSD_PROGRAM, 1, pcnfsd1_proc, hf_pcnfsd_procedure_v1); - rpc_init_proc_table(PCNFSD_PROGRAM, 2, pcnfsd2_proc, hf_pcnfsd_procedure_v2); + rpc_init_proc_table(proto_pcnfsd, PCNFSD_PROGRAM, 1, pcnfsd1_proc, hf_pcnfsd_procedure_v1); + rpc_init_proc_table(proto_pcnfsd, PCNFSD_PROGRAM, 2, pcnfsd2_proc, hf_pcnfsd_procedure_v2); } /* diff --git a/epan/dissectors/packet-portmap.c b/epan/dissectors/packet-portmap.c index 86d5c2f78b..ede71e2729 100644 --- a/epan/dissectors/packet-portmap.c +++ b/epan/dissectors/packet-portmap.c @@ -634,10 +634,10 @@ proto_reg_handoff_portmap(void) /* Register the protocol as RPC */ rpc_init_prog(proto_portmap, PORTMAP_PROGRAM, ett_portmap); /* Register the procedure tables */ - rpc_init_proc_table(PORTMAP_PROGRAM, 1, portmap1_proc, hf_portmap_procedure_v1); - rpc_init_proc_table(PORTMAP_PROGRAM, 2, portmap2_proc, hf_portmap_procedure_v2); - rpc_init_proc_table(PORTMAP_PROGRAM, 3, portmap3_proc, hf_portmap_procedure_v3); - rpc_init_proc_table(PORTMAP_PROGRAM, 4, portmap4_proc, hf_portmap_procedure_v4); + rpc_init_proc_table(proto_portmap, PORTMAP_PROGRAM, 1, portmap1_proc, hf_portmap_procedure_v1); + rpc_init_proc_table(proto_portmap, PORTMAP_PROGRAM, 2, portmap2_proc, hf_portmap_procedure_v2); + rpc_init_proc_table(proto_portmap, PORTMAP_PROGRAM, 3, portmap3_proc, hf_portmap_procedure_v3); + rpc_init_proc_table(proto_portmap, PORTMAP_PROGRAM, 4, portmap4_proc, hf_portmap_procedure_v4); rpc_handle = find_dissector("rpc"); } diff --git a/epan/dissectors/packet-rpc.c b/epan/dissectors/packet-rpc.c index 9e2c666233..c4347ef374 100644 --- a/epan/dissectors/packet-rpc.c +++ b/epan/dissectors/packet-rpc.c @@ -280,6 +280,10 @@ static dissector_handle_t rpc_handle; static dissector_handle_t gssapi_handle; static dissector_handle_t data_handle; +static dissector_table_t subdissector_call_table; +static dissector_table_t subdissector_reply_table; + + static guint max_rpc_tcp_pdu_size = 4 * 1024 * 1024; static const fragment_items rpc_frag_items = { @@ -303,9 +307,6 @@ static const fragment_items rpc_frag_items = { /* Hash table with info on RPC program numbers */ GHashTable *rpc_progs = NULL; -/* Hash table with info on RPC procedure numbers */ -GHashTable *rpc_procs = NULL; - typedef gboolean (*rec_dissector_t)(tvbuff_t *, packet_info *, proto_tree *, tvbuff_t *, fragment_head *, gboolean, guint32, gboolean); @@ -319,16 +320,16 @@ static guint32 rpc_version = 0; static gint32 rpc_min_proc = -1; static gint32 rpc_max_proc = -1; -static void * -rpcstat_find_procs(gpointer *key, gpointer *value _U_, gpointer *user_data _U_) +static void +rpcstat_find_procs(const gchar *table_name _U_, ftenum_t selector_type _U_, gpointer key, gpointer value _U_, gpointer user_data _U_) { rpc_proc_info_key *k = (rpc_proc_info_key *)key; if (k->prog != rpc_program) { - return NULL; + return; } if (k->vers != rpc_version) { - return NULL; + return; } if (rpc_min_proc == -1) { rpc_min_proc = k->proc; @@ -340,8 +341,6 @@ rpcstat_find_procs(gpointer *key, gpointer *value _U_, gpointer *user_data _U_) if ((gint32)k->proc > rpc_max_proc) { rpc_max_proc = k->proc; } - - return NULL; } static void @@ -417,7 +416,9 @@ rpcstat_param(register_srt_t* srt, const char* opt_arg, char** err) rpc_version = tap_data->version; rpc_min_proc = -1; rpc_max_proc = -1; - g_hash_table_foreach(rpc_procs, (GHFunc)rpcstat_find_procs, NULL); + /* Need to run over both dissector tables */ + dissector_table_foreach ("rpc.call", rpcstat_find_procs, NULL); + dissector_table_foreach ("rpc.reply", rpcstat_find_procs, NULL); tap_data->num_procedures = rpc_max_proc+1; if (rpc_min_proc == -1) { @@ -465,7 +466,7 @@ rpc_proc_hash(gconstpointer k) /* insert some entries */ void -rpc_init_proc_table(guint prog, guint vers, const vsff *proc_table, +rpc_init_proc_table(int proto, guint prog, guint vers, const vsff *proc_table, int procedure_hf) { rpc_prog_info_value *rpc_prog; @@ -482,20 +483,24 @@ rpc_init_proc_table(guint prog, guint vers, const vsff *proc_table, g_array_insert_val(rpc_prog->procedure_hfs, vers, procedure_hf); for (proc = proc_table ; proc->strptr!=NULL; proc++) { - rpc_proc_info_key *key; - rpc_proc_info_value *value; + rpc_proc_info_key key; - key = (rpc_proc_info_key *) g_malloc(sizeof(rpc_proc_info_key)); - key->prog = prog; - key->vers = vers; - key->proc = proc->value; + key.prog = prog; + key.vers = vers; + key.proc = proc->value; + + if (proc->dissect_call != NULL) + { + dissector_add_custom_table_handle("rpc.call", g_memdup(&key, sizeof(rpc_proc_info_key)), + new_create_dissector_handle_with_name(proc->dissect_call, proto, proc->strptr)); + } - value = (rpc_proc_info_value *) g_malloc(sizeof(rpc_proc_info_value)); - value->name = proc->strptr; - value->dissect_call = proc->dissect_call; - value->dissect_reply = proc->dissect_reply; + if (proc->dissect_reply == NULL) + { + dissector_add_custom_table_handle("rpc.reply", g_memdup(&key, sizeof(rpc_proc_info_key)), + new_create_dissector_handle_with_name(proc->dissect_reply, proto, proc->strptr)); + } - g_hash_table_insert(rpc_procs,key,value); } } @@ -505,15 +510,18 @@ const char * rpc_proc_name(guint32 prog, guint32 vers, guint32 proc) { rpc_proc_info_key key; - rpc_proc_info_value *value; + dissector_handle_t dissect_function; const char *procname; key.prog = prog; key.vers = vers; key.proc = proc; - if ((value = (rpc_proc_info_value *)g_hash_table_lookup(rpc_procs,&key)) != NULL) - procname = value->name; + /* Look at both tables for possible procedure names */ + if ((dissect_function = dissector_get_custom_table_handle(subdissector_call_table, &key)) != NULL) + procname = dissector_handle_get_dissector_name(dissect_function); + else if ((dissect_function = dissector_get_custom_table_handle(subdissector_reply_table, &key)) != NULL) + procname = dissector_handle_get_dissector_name(dissect_function); else { /* happens only with strange program versions or non-existing dissectors */ @@ -1507,7 +1515,7 @@ dissect_auth_gssapi_data(tvbuff_t *tvb, proto_tree *tree, int offset) static int call_dissect_function(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, - int offset, new_dissector_t dissect_function, const char *progname, + int offset, dissector_handle_t dissect_function, const char *progname, rpc_call_info_value *rpc_call) { const char *saved_proto; @@ -1521,7 +1529,7 @@ call_dissect_function(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, /* call the dissector for the next level */ next_tvb = tvb_new_subset_remaining(tvb, offset); - offset += dissect_function(next_tvb, pinfo, tree, rpc_call); + offset += call_dissector_with_data(dissect_function, next_tvb, pinfo, tree, rpc_call); /* restore the protocol name */ pinfo->current_proto = saved_proto; @@ -1534,7 +1542,7 @@ call_dissect_function(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, static int dissect_rpc_authgss_integ_data(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset, - new_dissector_t dissect_function, + dissector_handle_t dissect_function, const char *progname, rpc_call_info_value *rpc_call) { guint32 length, rounded_length, seq; @@ -1616,17 +1624,15 @@ dissect_rpc_indir_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, conversation_t* conversation; static address null_address = { AT_NONE, 0, NULL }; rpc_proc_info_key key; - rpc_proc_info_value *value; rpc_call_info_value *rpc_call; - new_dissector_t dissect_function = NULL; + dissector_handle_t dissect_function = NULL; rpc_conv_info_t *rpc_conv_info=NULL; guint32 xid; key.prog = prog; key.vers = vers; key.proc = proc; - if ((value = (rpc_proc_info_value *)g_hash_table_lookup(rpc_procs,&key)) != NULL) { - dissect_function = value->dissect_call; + if ((dissect_function = dissector_get_custom_table_handle(subdissector_call_table, &key)) != NULL) { /* Keep track of the address whence the call came, and the port to which the call is being sent, so that we can @@ -1726,7 +1732,6 @@ dissect_rpc_indir_call(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rpc_call->flavor = FLAVOR_NOT_GSSAPI; rpc_call->gss_proc = 0; rpc_call->gss_svc = 0; - rpc_call->proc_info = (rpc_proc_info_value*)wmem_memdup(wmem_file_scope(), value, sizeof(*value)); /* store it */ wmem_tree_insert32(rpc_conv_info->xids, xid, (void *)rpc_call); } @@ -1765,8 +1770,9 @@ dissect_rpc_indir_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, static address null_address = { AT_NONE, 0, NULL }; rpc_call_info_value *rpc_call; const char *procname=NULL; - new_dissector_t dissect_function = NULL; + dissector_handle_t dissect_function = NULL; rpc_conv_info_t *rpc_conv_info=NULL; + rpc_proc_info_key key; guint32 xid; /* Look for the matching call in the xid table. @@ -1835,19 +1841,15 @@ dissect_rpc_indir_reply(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, return offset; } - if (rpc_call->proc_info != NULL) { - dissect_function = rpc_call->proc_info->dissect_reply; - if (rpc_call->proc_info->name != NULL) { - procname = rpc_call->proc_info->name; - } - else { - procname=wmem_strdup_printf(wmem_packet_scope(), "proc-%u", rpc_call->proc); - } + key.prog = rpc_call->prog; + key.vers = rpc_call->vers; + key.proc = rpc_call->proc; + + dissect_function = dissector_get_custom_table_handle(subdissector_reply_table, &key); + if (dissect_function != NULL) { + procname = dissector_handle_get_dissector_name(dissect_function); } else { -#if 0 - dissect_function = NULL; -#endif procname=wmem_strdup_printf(wmem_packet_scope(), "proc-%u", rpc_call->proc); } @@ -1938,7 +1940,7 @@ make_fake_rpc_prog_if_needed (guint32 *prpc_prog_key, guint prog_ver) proto_rpc_unknown_program = proto_register_protocol(NAME, Name, name); rpc_init_prog(proto_rpc_unknown_program, *prpc_prog_key, ett_rpc_unknown_program); - rpc_init_proc_table(*prpc_prog_key, prog_ver, unknown_proc, hf_rpc_procedure); + rpc_init_proc_table(proto_rpc, *prpc_prog_key, prog_ver, unknown_proc, hf_rpc_procedure); } } @@ -1987,12 +1989,11 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, int offset = (is_tcp && tvb == frag_tvb) ? 4 : 0; rpc_proc_info_key key; - rpc_proc_info_value *value = NULL; conversation_t* conversation; static address null_address = { AT_NONE, 0, NULL }; nstime_t ns; - new_dissector_t dissect_function = NULL; + dissector_handle_t dissect_function = NULL; gboolean dissect_rpc_flag = TRUE; rpc_conv_info_t *rpc_conv_info=NULL; @@ -2244,16 +2245,12 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, key.vers = vers; key.proc = proc; - if ((value = (rpc_proc_info_value *)g_hash_table_lookup(rpc_procs,&key)) != NULL) { - dissect_function = value->dissect_call; - procname = value->name; + if ((dissect_function = dissector_get_custom_table_handle(subdissector_call_table, &key)) != NULL) { + procname = dissector_handle_get_dissector_name(dissect_function); } else { /* happens only with strange program versions or non-existing dissectors */ -#if 0 - dissect_function = NULL; -#endif procname=wmem_strdup_printf(wmem_packet_scope(), "proc-%u", proc); } @@ -2432,7 +2429,6 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, rpc_call->flavor = flavor; rpc_call->gss_proc = gss_proc; rpc_call->gss_svc = gss_svc; - rpc_call->proc_info = value ? (rpc_proc_info_value*)wmem_memdup(wmem_file_scope(), value, sizeof(*value)) : NULL; rpc_call->req_time = pinfo->fd->abs_ts; /* store it */ @@ -2469,27 +2465,19 @@ dissect_rpc_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, case RPC_REPLY: /* we know already the type from the calling routine, and we already have "rpc_call" set above. */ - prog = rpc_call->prog; - vers = rpc_call->vers; - proc = rpc_call->proc; + key.prog = prog = rpc_call->prog; + key.vers = vers = rpc_call->vers; + key.proc = proc = rpc_call->proc; flavor = rpc_call->flavor; gss_proc = rpc_call->gss_proc; gss_svc = rpc_call->gss_svc; - if (rpc_call->proc_info != NULL) { - dissect_function = rpc_call->proc_info->dissect_reply; - if (rpc_call->proc_info->name != NULL) { - procname = rpc_call->proc_info->name; - } - else { - procname=wmem_strdup_printf(wmem_packet_scope(), "proc-%u", proc); - } + dissect_function = dissector_get_custom_table_handle(subdissector_reply_table, &key); + if (dissect_function != NULL) { + procname = dissector_handle_get_dissector_name(dissect_function); } else { -#if 0 - dissect_function = NULL; -#endif - procname=wmem_strdup_printf(wmem_packet_scope(), "proc-%u", proc); + procname=wmem_strdup_printf(wmem_packet_scope(), "proc-%u", rpc_call->proc); } /* @@ -4090,6 +4078,9 @@ proto_register_rpc(void) proto_rpc = proto_register_protocol("Remote Procedure Call", "RPC", "rpc"); + subdissector_call_table = register_custom_dissector_table("rpc.call", "RPC Call Functions", rpc_proc_hash, rpc_proc_equal); + subdissector_reply_table = register_custom_dissector_table("rpc.reply", "RPC Reply Functions", rpc_proc_hash, rpc_proc_equal); + /* this is a dummy dissector for all those unknown rpc programs */ proto_register_field_array(proto_rpc, hf, array_length(hf)); proto_register_subtree_array(ett, array_length(ett)); @@ -4143,8 +4134,6 @@ proto_register_rpc(void) */ rpc_progs = g_hash_table_new_full(g_int_hash, g_int_equal, g_free, rpc_prog_free_val); - rpc_procs = g_hash_table_new_full(rpc_proc_hash, rpc_proc_equal, - g_free, g_free); authgss_contexts=wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope()); } diff --git a/epan/dissectors/packet-rpc.h b/epan/dissectors/packet-rpc.h index d0c9236f87..7c42a3bed7 100644 --- a/epan/dissectors/packet-rpc.h +++ b/epan/dissectors/packet-rpc.h @@ -124,7 +124,6 @@ typedef struct _rpc_call_info_value { flavor_t flavor; guint32 gss_proc; guint32 gss_svc; - struct _rpc_proc_info_value* proc_info; gboolean request; /* Is this a request or not ?*/ nstime_t req_time; void *private_data; @@ -142,7 +141,7 @@ typedef struct _vsff { extern const value_string rpc_auth_flavor[]; -WS_DLL_PUBLIC void rpc_init_proc_table(guint prog, guint vers, const vsff *proc_table, +WS_DLL_PUBLIC void rpc_init_proc_table(int proto, guint prog, guint vers, const vsff *proc_table, int procedure_hf); WS_DLL_PUBLIC void rpc_init_prog(int proto, guint32 prog, int ett); WS_DLL_PUBLIC const char *rpc_prog_name(guint32 prog); @@ -206,17 +205,6 @@ typedef struct _rpc_proc_info_key { guint32 proc; } rpc_proc_info_key; -typedef struct _rpc_proc_info_value { - const gchar *name; - new_dissector_t dissect_call; - new_dissector_t dissect_reply; -} rpc_proc_info_value; - -/* rpc_procs is also used in tap. With MSVC and a - * libwireshark.dll, we need a special declaration. - */ -WS_DLL_PUBLIC GHashTable *rpc_procs; - typedef struct rpcstat_tap_data { const char *prog; diff --git a/epan/dissectors/packet-rquota.c b/epan/dissectors/packet-rquota.c index 2fbb91c3c7..03302753d8 100644 --- a/epan/dissectors/packet-rquota.c +++ b/epan/dissectors/packet-rquota.c @@ -299,8 +299,8 @@ proto_reg_handoff_rquota(void) /* Register the protocol as RPC */ 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); + rpc_init_proc_table(proto_rquota, RQUOTA_PROGRAM, 1, rquota1_proc, hf_rquota_procedure_v1); + rpc_init_proc_table(proto_rquota, RQUOTA_PROGRAM, 2, rquota2_proc, hf_rquota_procedure_v2); } /* diff --git a/epan/dissectors/packet-rstat.c b/epan/dissectors/packet-rstat.c index 143a381cda..ab719a01cd 100644 --- a/epan/dissectors/packet-rstat.c +++ b/epan/dissectors/packet-rstat.c @@ -142,10 +142,10 @@ proto_reg_handoff_rstat(void) /* Register the protocol as RPC */ rpc_init_prog(proto_rstat, RSTAT_PROGRAM, ett_rstat); /* Register the procedure tables */ - rpc_init_proc_table(RSTAT_PROGRAM, 1, rstat1_proc, hf_rstat_procedure_v1); - rpc_init_proc_table(RSTAT_PROGRAM, 2, rstat2_proc, hf_rstat_procedure_v2); - rpc_init_proc_table(RSTAT_PROGRAM, 3, rstat3_proc, hf_rstat_procedure_v3); - rpc_init_proc_table(RSTAT_PROGRAM, 4, rstat4_proc, hf_rstat_procedure_v4); + rpc_init_proc_table(proto_rstat, RSTAT_PROGRAM, 1, rstat1_proc, hf_rstat_procedure_v1); + rpc_init_proc_table(proto_rstat, RSTAT_PROGRAM, 2, rstat2_proc, hf_rstat_procedure_v2); + rpc_init_proc_table(proto_rstat, RSTAT_PROGRAM, 3, rstat3_proc, hf_rstat_procedure_v3); + rpc_init_proc_table(proto_rstat, RSTAT_PROGRAM, 4, rstat4_proc, hf_rstat_procedure_v4); } /* diff --git a/epan/dissectors/packet-rwall.c b/epan/dissectors/packet-rwall.c index c6a6306370..575cac1655 100644 --- a/epan/dissectors/packet-rwall.c +++ b/epan/dissectors/packet-rwall.c @@ -88,7 +88,7 @@ proto_reg_handoff_rwall(void) /* Register the protocol as RPC */ rpc_init_prog(hfi_rwall->id, RWALL_PROGRAM, ett_rwall); /* Register the procedure tables */ - rpc_init_proc_table(RWALL_PROGRAM, 1, rwall1_proc, hfi_rwall_procedure_v1.id); + rpc_init_proc_table(hfi_rwall->id, RWALL_PROGRAM, 1, rwall1_proc, hfi_rwall_procedure_v1.id); } /* diff --git a/epan/dissectors/packet-sadmind.c b/epan/dissectors/packet-sadmind.c index 70b9e4a258..7f9233971d 100644 --- a/epan/dissectors/packet-sadmind.c +++ b/epan/dissectors/packet-sadmind.c @@ -102,9 +102,9 @@ proto_reg_handoff_sadmind(void) /* Register the protocol as RPC */ rpc_init_prog(proto_sadmind, SADMIND_PROGRAM, ett_sadmind); /* Register the procedure tables */ - rpc_init_proc_table(SADMIND_PROGRAM, 1, sadmind1_proc, hf_sadmind_procedure_v1); - rpc_init_proc_table(SADMIND_PROGRAM, 2, sadmind2_proc, hf_sadmind_procedure_v2); - rpc_init_proc_table(SADMIND_PROGRAM, 3, sadmind3_proc, hf_sadmind_procedure_v3); + rpc_init_proc_table(proto_sadmind, SADMIND_PROGRAM, 1, sadmind1_proc, hf_sadmind_procedure_v1); + rpc_init_proc_table(proto_sadmind, SADMIND_PROGRAM, 2, sadmind2_proc, hf_sadmind_procedure_v2); + rpc_init_proc_table(proto_sadmind, SADMIND_PROGRAM, 3, sadmind3_proc, hf_sadmind_procedure_v3); } /* diff --git a/epan/dissectors/packet-spray.c b/epan/dissectors/packet-spray.c index 2287506a96..0709f14e5a 100644 --- a/epan/dissectors/packet-spray.c +++ b/epan/dissectors/packet-spray.c @@ -136,7 +136,7 @@ proto_reg_handoff_spray(void) /* Register the protocol as RPC */ rpc_init_prog(proto_spray, SPRAY_PROGRAM, ett_spray); /* Register the procedure tables */ - rpc_init_proc_table(SPRAY_PROGRAM, 1, spray1_proc, hf_spray_procedure_v1); + rpc_init_proc_table(proto_spray, SPRAY_PROGRAM, 1, spray1_proc, hf_spray_procedure_v1); } /* diff --git a/epan/dissectors/packet-stat-notify.c b/epan/dissectors/packet-stat-notify.c index 579c2107d4..898b023c1e 100644 --- a/epan/dissectors/packet-stat-notify.c +++ b/epan/dissectors/packet-stat-notify.c @@ -103,7 +103,7 @@ proto_reg_handoff_statnotify(void) /* Register the protocol as RPC */ rpc_init_prog(proto_statnotify, STATNOTIFY_PROGRAM, ett_statnotify); /* Register the procedure tables */ - rpc_init_proc_table(STATNOTIFY_PROGRAM, 1, statnotify1_proc, hf_statnotify_procedure_v1); + rpc_init_proc_table(proto_statnotify, STATNOTIFY_PROGRAM, 1, statnotify1_proc, hf_statnotify_procedure_v1); } /* diff --git a/epan/dissectors/packet-stat.c b/epan/dissectors/packet-stat.c index e4a574cbf0..ea1c29a98e 100644 --- a/epan/dissectors/packet-stat.c +++ b/epan/dissectors/packet-stat.c @@ -350,7 +350,7 @@ proto_reg_handoff_stat(void) /* Register the protocol as RPC */ rpc_init_prog(hfi_stat->id, STAT_PROGRAM, ett_stat); /* Register the procedure tables */ - rpc_init_proc_table(STAT_PROGRAM, 1, stat1_proc, hfi_stat_procedure_v1.id); + rpc_init_proc_table(hfi_stat->id, STAT_PROGRAM, 1, stat1_proc, hfi_stat_procedure_v1.id); } /* diff --git a/epan/dissectors/packet-teklink.c b/epan/dissectors/packet-teklink.c index 4a7e183600..79767150b5 100644 --- a/epan/dissectors/packet-teklink.c +++ b/epan/dissectors/packet-teklink.c @@ -576,7 +576,7 @@ proto_reg_handoff_teklink(void) rpc_init_prog(proto_teklink, PROGRAM_TEKLINK, ett_teklink); /* Register the procedure tables */ - rpc_init_proc_table(PROGRAM_TEKLINK, 1, teklink_proc, hf_teklink_procedure); + rpc_init_proc_table(proto_teklink, PROGRAM_TEKLINK, 1, teklink_proc, hf_teklink_procedure); } /* diff --git a/epan/dissectors/packet-vxi11.c b/epan/dissectors/packet-vxi11.c index eb5ee3426e..06da7dbdb5 100644 --- a/epan/dissectors/packet-vxi11.c +++ b/epan/dissectors/packet-vxi11.c @@ -926,7 +926,7 @@ proto_reg_handoff_vxi11_core(void) }; rpc_init_prog(proto_vxi11_core, VXI11_CORE_PROGRAM, ett_vxi11_core); - rpc_init_proc_table(VXI11_CORE_PROGRAM, + rpc_init_proc_table(proto_vxi11_core, VXI11_CORE_PROGRAM, VXI11_CORE_VERSION, vxi111_core_proc, hf_vxi11_core_procedure_v1); @@ -973,7 +973,7 @@ proto_reg_handoff_vxi11_async(void) }; rpc_init_prog(proto_vxi11_async, VXI11_ASYNC_PROGRAM, ett_vxi11_async); - rpc_init_proc_table(VXI11_ASYNC_PROGRAM, + rpc_init_proc_table(proto_vxi11_async, VXI11_ASYNC_PROGRAM, VXI11_ASYNC_VERSION, vxi111_async_proc, hf_vxi11_async_procedure_v1); @@ -1026,7 +1026,7 @@ proto_reg_handoff_vxi11_intr(void) }; rpc_init_prog(proto_vxi11_intr, VXI11_INTR_PROGRAM, ett_vxi11_intr); - rpc_init_proc_table(VXI11_INTR_PROGRAM, + rpc_init_proc_table(proto_vxi11_intr, VXI11_INTR_PROGRAM, VXI11_INTR_VERSION, vxi111_intr_proc, hf_vxi11_intr_procedure_v1); diff --git a/epan/dissectors/packet-ypbind.c b/epan/dissectors/packet-ypbind.c index 16baa0b993..9b970ef1d8 100644 --- a/epan/dissectors/packet-ypbind.c +++ b/epan/dissectors/packet-ypbind.c @@ -217,8 +217,8 @@ proto_reg_handoff_ypbind(void) /* Register the protocol as RPC */ rpc_init_prog(proto_ypbind, YPBIND_PROGRAM, ett_ypbind); /* Register the procedure tables */ - rpc_init_proc_table(YPBIND_PROGRAM, 1, ypbind1_proc, hf_ypbind_procedure_v1); - rpc_init_proc_table(YPBIND_PROGRAM, 2, ypbind2_proc, hf_ypbind_procedure_v2); + rpc_init_proc_table(proto_ypbind, YPBIND_PROGRAM, 1, ypbind1_proc, hf_ypbind_procedure_v1); + rpc_init_proc_table(proto_ypbind, YPBIND_PROGRAM, 2, ypbind2_proc, hf_ypbind_procedure_v2); } /* diff --git a/epan/dissectors/packet-yppasswd.c b/epan/dissectors/packet-yppasswd.c index 051f337409..2cd90eec92 100644 --- a/epan/dissectors/packet-yppasswd.c +++ b/epan/dissectors/packet-yppasswd.c @@ -164,7 +164,7 @@ proto_reg_handoff_yppasswd(void) /* Register the protocol as RPC */ rpc_init_prog(proto_yppasswd, YPPASSWD_PROGRAM, ett_yppasswd); /* Register the procedure tables */ - rpc_init_proc_table(YPPASSWD_PROGRAM, 1, yppasswd1_proc, hf_yppasswd_procedure_v1); + rpc_init_proc_table(proto_yppasswd, YPPASSWD_PROGRAM, 1, yppasswd1_proc, hf_yppasswd_procedure_v1); } /* diff --git a/epan/dissectors/packet-ypserv.c b/epan/dissectors/packet-ypserv.c index 78f86c6f81..8bbb7b573a 100644 --- a/epan/dissectors/packet-ypserv.c +++ b/epan/dissectors/packet-ypserv.c @@ -644,9 +644,9 @@ proto_reg_handoff_ypserv(void) /* Register the protocol as RPC */ rpc_init_prog(proto_ypserv, YPSERV_PROGRAM, ett_ypserv); /* Register the procedure tables */ - rpc_init_proc_table(YPSERV_PROGRAM, 1, ypserv1_proc, + rpc_init_proc_table(proto_ypserv, YPSERV_PROGRAM, 1, ypserv1_proc, hf_ypserv_procedure_v1); - rpc_init_proc_table(YPSERV_PROGRAM, 2, ypserv2_proc, + rpc_init_proc_table(proto_ypserv, YPSERV_PROGRAM, 2, ypserv2_proc, hf_ypserv_procedure_v2); } diff --git a/epan/dissectors/packet-ypxfr.c b/epan/dissectors/packet-ypxfr.c index 066bf3c085..19a71966aa 100644 --- a/epan/dissectors/packet-ypxfr.c +++ b/epan/dissectors/packet-ypxfr.c @@ -74,7 +74,7 @@ proto_reg_handoff_ypxfr(void) /* Register the protocol as RPC */ rpc_init_prog(proto_ypxfr, YPXFR_PROGRAM, ett_ypxfr); /* Register the procedure tables */ - rpc_init_proc_table(YPXFR_PROGRAM, 1, ypxfr1_proc, hf_ypxfr_procedure_v1); + rpc_init_proc_table(proto_ypxfr, YPXFR_PROGRAM, 1, ypxfr1_proc, hf_ypxfr_procedure_v1); } /* -- cgit v1.2.3