Added stubs for various RPC routines:

portmap
	ypserv
	ypxfr
	ypserv
	bootparams

Stubs currently just map procedure numbers to names. I'll add some more
decoding of the actual procedure call/reply contents eventually.

svn path=/trunk/; revision=998
This commit is contained in:
Nathan Neulinger 1999-11-10 17:23:55 +00:00
parent abc9101b41
commit a7fc895437
14 changed files with 457 additions and 31 deletions

View File

@ -150,6 +150,7 @@ Nathan Neulinger <nneul@umr.edu> {
RX protocol support
Andrew File System protocol support
802.1q VLAN support
Stubs for ypbind/ypserv/ypxfr/portmap/bootparams rpc dissectors
}
Tomislav Vujec <tvujec@carnet.hr> {

View File

@ -1,7 +1,7 @@
# Makefile.am
# Automake file for Ethereal
#
# $Id: Makefile.am,v 1.101 1999/11/10 14:44:57 nneul Exp $
# $Id: Makefile.am,v 1.102 1999/11/10 17:23:53 nneul Exp $
#
# Ethereal - Network traffic analyzer
# By Gerald Combs <gerald@zing.org>
@ -42,6 +42,8 @@ DISSECTOR_SOURCES = \
packet-atm.c \
packet-bgp.c \
packet-bootp.c \
packet-bootparams.c \
packet-bootparams.h \
packet-bpdu.c \
packet-cdp.c \
packet-clip.c \
@ -87,6 +89,8 @@ DISSECTOR_SOURCES = \
packet-ospf.h \
packet-pim.c \
packet-pop.c \
packet-portmap.c \
packet-portmap.h \
packet-ppp.c \
packet-pppoe.c \
packet-pptp.c \
@ -118,7 +122,13 @@ DISSECTOR_SOURCES = \
packet-vlan.c \
packet-x25.c \
packet-yhoo.c \
packet-yhoo.h
packet-yhoo.h \
packet-ypbind.c \
packet-ypbind.h \
packet-ypserv.c \
packet-ypserv.h \
packet-ypxfr.c \
packet-ypxfr.h
ethereal_SOURCES = \
alignment.h \

63
packet-bootparams.c Normal file
View File

@ -0,0 +1,63 @@
/* packet-bootparams.c
* Routines for bootparams dissection
*
* $Id: packet-bootparams.c,v 1.1 1999/11/10 17:23:53 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@unicom.net>
* Copyright 1998 Gerald Combs
*
* Copied from packet-smb.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "packet-rpc.h"
#include "packet-bootparams.h"
static int proto_bootparams = -1;
/* proc number, "proc name", dissect_request, dissect_reply */
/* NULL as function pointer means: take the generic one. */
const vsff bootparams1_proc[] = {
{ BOOTPARAMSPROC_NULL, "NULL", NULL, NULL },
{ BOOTPARAMSPROC_WHOAMI, "WHOAMI", NULL, NULL },
{ BOOTPARAMSPROC_GETFILE, "GETFILE", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of Bootparams version 1 */
void
proto_register_bootparams(void)
{
proto_bootparams = proto_register_protocol("Boot Parameters", "BOOTPARAMS");
/* 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);
}

13
packet-bootparams.h Normal file
View File

@ -0,0 +1,13 @@
/* packet-bootparams.h */
/* $Id: packet-bootparams.h,v 1.1 1999/11/10 17:23:53 nneul Exp $ */
#ifndef PACKET_BOOTPARAMS_H
#define PACKET_BOOTPARAMS_H
#define BOOTPARAMSPROC_NULL 0
#define BOOTPARAMSPROC_WHOAMI 1
#define BOOTPARAMSPROC_GETFILE 2
#define BOOTPARAMS_PROGRAM 100026
#endif

78
packet-portmap.c Normal file
View File

@ -0,0 +1,78 @@
/* packet-portmap.c
* Routines for portmap dissection
*
* $Id: packet-portmap.c,v 1.1 1999/11/10 17:23:53 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@unicom.net>
* Copyright 1998 Gerald Combs
*
* Copied from packet-smb.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "packet-rpc.h"
#include "packet-portmap.h"
static int proto_portmap = -1;
/* proc number, "proc name", dissect_request, dissect_reply */
/* NULL as function pointer means: take the generic one. */
const vsff portmap1_proc[] = {
{ PORTMAPPROC_NULL, "NULL", NULL, NULL },
{ PORTMAPPROC_SET, "SET", NULL, NULL },
{ PORTMAPPROC_UNSET, "UNSET", NULL, NULL },
{ PORTMAPPROC_GETPORT, "GETPORT", NULL, NULL },
{ PORTMAPPROC_DUMP, "DUMP", NULL, NULL },
{ PORTMAPPROC_CALLIT, "CALLIT", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of Portmap version 1 */
const vsff portmap2_proc[] = {
{ PORTMAPPROC_NULL, "NULL", NULL, NULL },
{ PORTMAPPROC_SET, "SET", NULL, NULL },
{ PORTMAPPROC_UNSET, "UNSET", NULL, NULL },
{ PORTMAPPROC_GETPORT, "GETPORT", NULL, NULL },
{ PORTMAPPROC_DUMP, "DUMP", NULL, NULL },
{ PORTMAPPROC_CALLIT, "CALLIT", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of Portmap version 2 */
void
proto_register_portmap(void)
{
proto_portmap = proto_register_protocol("Portmap", "PORTMAP");
/* 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);
rpc_init_proc_table(PORTMAP_PROGRAM, 2, portmap2_proc);
}

16
packet-portmap.h Normal file
View File

@ -0,0 +1,16 @@
/* packet-portmap.h */
/* $Id: packet-portmap.h,v 1.1 1999/11/10 17:23:53 nneul Exp $ */
#ifndef PACKET_PORTMAP_H
#define PACKET_PORTMAP_H
#define PORTMAP_PROGRAM 100000
#define PORTMAPPROC_NULL 0
#define PORTMAPPROC_SET 1
#define PORTMAPPROC_UNSET 2
#define PORTMAPPROC_GETPORT 3
#define PORTMAPPROC_DUMP 4
#define PORTMAPPROC_CALLIT 5
#endif

View File

@ -2,7 +2,7 @@
* Routines for rpc dissection
* Copyright 1999, Uwe Girlich <Uwe.Girlich@philosys.de>
*
* $Id: packet-rpc.c,v 1.5 1999/11/10 15:10:32 nneul Exp $
* $Id: packet-rpc.c,v 1.6 1999/11/10 17:23:54 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@unicom.net>
@ -206,49 +206,24 @@ It should vanish, if they are finally present. Up to this point, this
minimal variant serves as a detector for RPC services and can even find
request/reply pairs. */
#define BOOT_PROGRAM 100026
#define MNT_PROGRAM 100005
#define NLM_PROGRAM 100021
#define PMAP_PROGRAM 100000
#define STAT_PROGRAM 100024
#define YPBIND_PROGRAM 100007
#define YPSERV_PROGRAM 100004
#define YPXFR_PROGRAM 100069
static int proto_boot = -1;
static int proto_mnt = -1;
static int proto_nlm = -1;
static int proto_pmap = -1;
static int proto_stat = -1;
static int proto_ypbind = -1;
static int proto_ypserv = -1;
static int proto_ypxfr = -1;
void init_incomplete_dissect(void)
{
proto_boot = proto_register_protocol("Bootparameters", "BOOT");
rpc_init_prog(proto_boot, BOOT_PROGRAM, ETT_BOOT);
proto_mnt = proto_register_protocol("Mount", "MNT");
rpc_init_prog(proto_mnt, MNT_PROGRAM, ETT_MNT);
proto_nlm = proto_register_protocol("Network Lock Manager", "NLM");
rpc_init_prog(proto_nlm, NLM_PROGRAM, ETT_NLM);
proto_pmap = proto_register_protocol("Portmapper", "PMAP");
rpc_init_prog(proto_pmap, PMAP_PROGRAM, ETT_PMAP);
proto_stat = proto_register_protocol("Status", "STAT");
rpc_init_prog(proto_stat, STAT_PROGRAM, ETT_STAT);
proto_ypbind = proto_register_protocol("Yellow Page Bind", "YPBIND");
rpc_init_prog(proto_ypbind, YPBIND_PROGRAM, ETT_YPBIND);
proto_ypserv = proto_register_protocol("Yellow Page Server", "YPSERV");
rpc_init_prog(proto_ypserv, YPSERV_PROGRAM, ETT_YPSERV);
proto_ypxfr = proto_register_protocol("Yellow Page Transfer", "YPXFR");
rpc_init_prog(proto_ypxfr, YPXFR_PROGRAM, ETT_YPXFR);
}

72
packet-ypbind.c Normal file
View File

@ -0,0 +1,72 @@
/* packet-ypbind.c
* Routines for ypbind dissection
*
* $Id: packet-ypbind.c,v 1.1 1999/11/10 17:23:54 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@unicom.net>
* Copyright 1998 Gerald Combs
*
* Copied from packet-smb.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "packet-rpc.h"
#include "packet-ypbind.h"
static int proto_ypbind = -1;
/* proc number, "proc name", dissect_request, dissect_reply */
/* NULL as function pointer means: take the generic one. */
const vsff ypbind1_proc[] = {
{ YPBINDPROC_NULL, "NULL", NULL, NULL },
{ YPBINDPROC_DOMAIN, "DOMAIN", NULL, NULL },
{ YPBINDPROC_SETDOM, "SETDOMAIN", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of YPBind version 1 */
const vsff ypbind2_proc[] = {
{ YPBINDPROC_NULL, "NULL", NULL, NULL },
{ YPBINDPROC_DOMAIN, "DOMAIN", NULL, NULL },
{ YPBINDPROC_SETDOM, "SETDOMAIN", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of YPBind version 2 */
void
proto_register_ypbind(void)
{
proto_ypbind = proto_register_protocol("Yellow Pages Bind", "YPBIND");
/* 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);
rpc_init_proc_table(YPBIND_PROGRAM, 2, ypbind2_proc);
}

13
packet-ypbind.h Normal file
View File

@ -0,0 +1,13 @@
/* packet-ypbind.h */
/* $Id: packet-ypbind.h,v 1.1 1999/11/10 17:23:54 nneul Exp $ */
#ifndef PACKET_YPBIND_H
#define PACKET_YPBIND_H
#define YPBINDPROC_NULL 0
#define YPBINDPROC_DOMAIN 1
#define YPBINDPROC_SETDOM 2
#define YPBIND_PROGRAM 100007
#endif

90
packet-ypserv.c Normal file
View File

@ -0,0 +1,90 @@
/* packet-ypserv.c
* Routines for ypserv dissection
*
* $Id: packet-ypserv.c,v 1.1 1999/11/10 17:23:54 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@unicom.net>
* Copyright 1998 Gerald Combs
*
* Copied from packet-smb.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "packet-rpc.h"
#include "packet-ypserv.h"
static int proto_ypserv = -1;
/* proc number, "proc name", dissect_request, dissect_reply */
/* NULL as function pointer means: take the generic one. */
const vsff ypserv1_proc[] = {
{ 0, "NULL", NULL, NULL },
{ YPPROC_ALL, "ALL", NULL, NULL },
{ YPPROC_CLEAR, "CLEAR", NULL, NULL },
{ YPPROC_DOMAIN, "DOMAIN", NULL, NULL },
{ YPPROC_DOMAIN_NONACK, "DOMAIN_NONACK", NULL, NULL },
{ YPPROC_FIRST, "FIRST", NULL, NULL },
{ YPPROC_MAPLIST, "MAPLIST", NULL, NULL },
{ YPPROC_MASTER, "MASTER", NULL, NULL },
{ YPPROC_MATCH, "MATCH", NULL, NULL },
{ YPPROC_NEXT, "NEXT", NULL, NULL },
{ YPPROC_ORDER, "ORDER", NULL, NULL },
{ YPPROC_XFR, "XFR", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of YPServ version 1 */
const vsff ypserv2_proc[] = {
{ 0, "NULL", NULL, NULL },
{ YPPROC_ALL, "ALL", NULL, NULL },
{ YPPROC_CLEAR, "CLEAR", NULL, NULL },
{ YPPROC_DOMAIN, "DOMAIN", NULL, NULL },
{ YPPROC_DOMAIN_NONACK, "DOMAIN_NONACK", NULL, NULL },
{ YPPROC_FIRST, "FIRST", NULL, NULL },
{ YPPROC_MAPLIST, "MAPLIST", NULL, NULL },
{ YPPROC_MASTER, "MASTER", NULL, NULL },
{ YPPROC_MATCH, "MATCH", NULL, NULL },
{ YPPROC_NEXT, "NEXT", NULL, NULL },
{ YPPROC_ORDER, "ORDER", NULL, NULL },
{ YPPROC_XFR, "XFR", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of YPServ version 2 */
void
proto_register_ypserv(void)
{
proto_ypserv = proto_register_protocol("Yellow Pages Service", "YPSERV");
/* 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(YPSERV_PROGRAM, 2, ypserv2_proc);
}

22
packet-ypserv.h Normal file
View File

@ -0,0 +1,22 @@
/* packet-ypserv.h */
/* $Id: packet-ypserv.h,v 1.1 1999/11/10 17:23:54 nneul Exp $ */
#ifndef PACKET_YPSERV_H
#define PACKET_YPSERV_H
#define YPSERV_PROGRAM 100004
#define YPPROC_NULL 0
#define YPPROC_DOMAIN 1
#define YPPROC_DOMAIN_NONACK 2
#define YPPROC_MATCH 3
#define YPPROC_FIRST 4
#define YPPROC_NEXT 5
#define YPPROC_XFR 6
#define YPPROC_CLEAR 7
#define YPPROC_ALL 8
#define YPPROC_MASTER 9
#define YPPROC_ORDER 10
#define YPPROC_MAPLIST 11
#endif

61
packet-ypxfr.c Normal file
View File

@ -0,0 +1,61 @@
/* packet-ypxfr.c
* Routines for ypxfr dissection
*
* $Id: packet-ypxfr.c,v 1.1 1999/11/10 17:23:55 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@unicom.net>
* Copyright 1998 Gerald Combs
*
* Copied from packet-smb.c
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#include "packet-rpc.h"
#include "packet-ypxfr.h"
static int proto_ypxfr = -1;
/* proc number, "proc name", dissect_request, dissect_reply */
/* NULL as function pointer means: take the generic one. */
const vsff ypxfr1_proc[] = {
{ YPXFRPROC_NULL, "NULL", NULL, NULL },
{ YPXFRPROC_GETMAP, "GETMAP", NULL, NULL },
{ 0, NULL, NULL, NULL }
};
/* end of YPXFR version 1 */
void
proto_register_ypxfr(void)
{
proto_ypxfr = proto_register_protocol("Yellow Pages Transfer", "ypxfr");
/* 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);
}

12
packet-ypxfr.h Normal file
View File

@ -0,0 +1,12 @@
/* packet-ypxfr.h */
/* $Id: packet-ypxfr.h,v 1.1 1999/11/10 17:23:55 nneul Exp $ */
#ifndef PACKET_YPXFR_H
#define PACKET_YPXFR_H
#define YPXFRPROC_NULL 0
#define YPXFRPROC_GETMAP 1
#define YPXFR_PROGRAM 100069
#endif

View File

@ -1,7 +1,7 @@
/* packet.h
* Definitions for packet disassembly structures and routines
*
* $Id: packet.h,v 1.130 1999/11/10 15:10:33 nneul Exp $
* $Id: packet.h,v 1.131 1999/11/10 17:23:55 nneul Exp $
*
* Ethereal - Network traffic analyzer
* By Gerald Combs <gerald@zing.org>
@ -277,6 +277,7 @@ enum {
ETT_CLIP,
ETT_BOOTP,
ETT_BOOTP_OPTION,
ETT_BOOTPARAMS,
ETT_IPv6,
ETT_BGP,
ETT_BGP_OPEN,
@ -447,10 +448,9 @@ enum {
ETT_NFS_FH3,
ETT_NFS_NFSTIME3,
ETT_NFS_FATTR3,
ETT_BOOT,
ETT_MNT,
ETT_NLM,
ETT_PMAP,
ETT_PORTMAP,
ETT_STAT,
ETT_YPBIND,
ETT_YPSERV,