diff options
-rw-r--r-- | AUTHORS | 1 | ||||
-rw-r--r-- | Makefile.am | 14 | ||||
-rw-r--r-- | packet-bootparams.c | 63 | ||||
-rw-r--r-- | packet-bootparams.h | 13 | ||||
-rw-r--r-- | packet-portmap.c | 78 | ||||
-rw-r--r-- | packet-portmap.h | 16 | ||||
-rw-r--r-- | packet-rpc.c | 27 | ||||
-rw-r--r-- | packet-ypbind.c | 72 | ||||
-rw-r--r-- | packet-ypbind.h | 13 | ||||
-rw-r--r-- | packet-ypserv.c | 90 | ||||
-rw-r--r-- | packet-ypserv.h | 22 | ||||
-rw-r--r-- | packet-ypxfr.c | 61 | ||||
-rw-r--r-- | packet-ypxfr.h | 12 | ||||
-rw-r--r-- | packet.h | 6 |
14 files changed, 457 insertions, 31 deletions
@@ -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> { diff --git a/Makefile.am b/Makefile.am index 817cde6dd8..0024f746dc 100644 --- a/Makefile.am +++ b/Makefile.am @@ -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 \ diff --git a/packet-bootparams.c b/packet-bootparams.c new file mode 100644 index 0000000000..c31a77ec79 --- /dev/null +++ b/packet-bootparams.c @@ -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); +} + diff --git a/packet-bootparams.h b/packet-bootparams.h new file mode 100644 index 0000000000..9b060e3d63 --- /dev/null +++ b/packet-bootparams.h @@ -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 diff --git a/packet-portmap.c b/packet-portmap.c new file mode 100644 index 0000000000..28687eb1b2 --- /dev/null +++ b/packet-portmap.c @@ -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); +} + diff --git a/packet-portmap.h b/packet-portmap.h new file mode 100644 index 0000000000..6c7528025a --- /dev/null +++ b/packet-portmap.h @@ -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 diff --git a/packet-rpc.c b/packet-rpc.c index 9df70f4f87..4336f94508 100644 --- a/packet-rpc.c +++ b/packet-rpc.c @@ -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); } diff --git a/packet-ypbind.c b/packet-ypbind.c new file mode 100644 index 0000000000..8044ec45d0 --- /dev/null +++ b/packet-ypbind.c @@ -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); +} + diff --git a/packet-ypbind.h b/packet-ypbind.h new file mode 100644 index 0000000000..aac98b3e2f --- /dev/null +++ b/packet-ypbind.h @@ -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 diff --git a/packet-ypserv.c b/packet-ypserv.c new file mode 100644 index 0000000000..1deee7ae2c --- /dev/null +++ b/packet-ypserv.c @@ -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); +} + diff --git a/packet-ypserv.h b/packet-ypserv.h new file mode 100644 index 0000000000..3019991515 --- /dev/null +++ b/packet-ypserv.h @@ -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 diff --git a/packet-ypxfr.c b/packet-ypxfr.c new file mode 100644 index 0000000000..9c61394efa --- /dev/null +++ b/packet-ypxfr.c @@ -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); +} + diff --git a/packet-ypxfr.h b/packet-ypxfr.h new file mode 100644 index 0000000000..d851723562 --- /dev/null +++ b/packet-ypxfr.h @@ -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 @@ -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, |