Merge pull request #21 from qha/repair-make-targets

Repair make targets and ssl/ssldecode.c, bump version
This commit is contained in:
Alexandre Dulaunoy 2019-05-23 15:00:33 +02:00 committed by GitHub
commit da73adff42
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 160 additions and 1141 deletions

9
.gitignore vendored Normal file
View file

@ -0,0 +1,9 @@
*~
.#*
*.o
ssldump
Makefile
config.log
config.status
dist
autom4te.cache

View file

@ -1,49 +1,56 @@
# Copyright (C) 1999-2000 RTFM, Inc.
# All Rights Reserved
# This package is a SSLv3/TLS protocol analyzer written by Eric Rescorla
# <ekr\@rtfm.com> and licensed by RTFM, Inc.
# This package is a SSLv3/TLS protocol analyzer written by Eric
# Rescorla <ekr@rtfm.com> and licensed by RTFM, Inc.
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. All advertising materials mentioning features or use of this software
# must display the following acknowledgement:
# 2. Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
# 3. All advertising materials mentioning features or use of this
# software must display the following acknowledgement:
#
# This product includes software developed by Eric Rescorla for
# RTFM, Inc.
# 4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla may be
# used to endorse or promote products derived from this
# software without specific prior written permission.
# 4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla may
# be used to endorse or promote products derived from this software
# without specific prior written permission.
# THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS IS'' AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY SUCH DAMAGE.
PLATFORM=freebsd31
# THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS IS''
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
# SUCH DAMAGE.
CC=@CC@
all: ssldump
PACKAGE_TARNAME=@PACKAGE_TARNAME@
PACKAGE_VERSION=@PACKAGE_VERSION@
OBJSUFFIX=o
LIBSUFFIX=a
INSTALL=@INSTALL@
prefix=@prefix@
exec_prefix=@exec_prefix@
BINDIR=@sbindir@
MANDIR=@mandir@
sbindir=@sbindir@
mandir=@mandir@
datarootdir=@datarootdir@
docdir=@docdir@
RM=rm -f
ROOT=./
@ -71,41 +78,50 @@ LIBS += @LDFLAGS@ @LIBS@
CFLAGS += @CFLAGS@ @DEFS@
.PHONY: clean install dist
ssldump: $(OBJECTS)
$(CC) $(OBJECTS) -o $@ $(LIBS)
$(CC) $(OBJECTS) -o $@ $(LIBS)
clean:
rm -f $(OBJECTS) ssldump
install:
[ -d $(BINDIR) ] || mkdir -p $(BINDIR)
$(INSTALL) -m 755 ssldump $(BINDIR)/ssldump
[ -d $(MANDIR) ] || mkdir -p $(MANDIR)/man1
$(INSTALL) -m 444 ssldump.1 $(MANDIR)/man1/ssldump.1
$(INSTALL) -m 755 -d $(sbindir)
$(INSTALL) -m 755 -d $(mandir)/man1
$(INSTALL) -m 755 -d $(docdir)
$(INSTALL) -m 755 ssldump $(sbindir)/ssldump
$(INSTALL) -m 644 ssldump.1 $(mandir)/man1/ssldump.1
$(INSTALL) -m 644 README $(docdir)
$(INSTALL) -m 644 README.md $(docdir)
$(INSTALL) -m 644 ChangeLog $(docdir)
$(INSTALL) -m 644 COPYRIGHT $(docdir)
$(INSTALL) -m 644 CREDITS $(docdir)
dist:
perl "./version-check.pl"
- name=ssldump-`cat VERSION`; \
rm -rf /dist/ship/$$name; \
mkdir /dist/ship/$$name; \
cp -pR * /dist/ship/$$name; \
cd /dist/ship/$$name; \
make -f Makefile.in clean; \
rm Makefile; \
find . -name '*~' -exec rm {} \; -print;\
find . -name '*.o' -exec rm {} \; -print;\
find . -name '#*#' -exec rm {} \; -print;\
find . -name 'CVS' -exec rm -rf {} \; -print;\
find . -name '*bak' -exec rm -rf {} \; -print;\
find . -name '*.core' -exec rm -rf {} \; -print;\
find . -name '*.tr' -exec rm -rf {} \; -print;\
find . -name '*.pl' -exec rm -rf {} \; -print;\
find . -name '*.pem' -exec rm -rf {} \; -print;\
find . -name '*orig' -exec rm -rf {} \; -print;\
find . -name '*.rej' -exec rm -rf {} \; -print;\
rm -f TODO TAGS; \
rm -f config.status config.log config.cache config.h; \
rm -f ssl/a.out all; \
cd /dist/ship; tar cf - $$name | gzip > $$name.tar.gz
rm -rf dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
mkdir -p dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
ls -1| grep -vx -e dist -e autom4te.cache \
| xargs cp -pR -t dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
make -C dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) clean
rm dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/Makefile
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*~' -exec rm {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*.o' -exec rm {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '#*#' -exec rm {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '.#*' -exec rm {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name 'CVS' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*bak' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*.core' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*.tr' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*.pl' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*.pem' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*orig' -exec rm -rf {} \; -print
find dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION) -name '*.rej' -exec rm -rf {} \; -print
rm -f dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/config.status
rm -f dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/config.log
rm -f dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/config.cache
rm -f dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/config.h
rm -f dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/ssl/a.out
rm -f dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)/all
tar cf - -C dist $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) \
| gzip >dist/$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz

View file

@ -1 +0,0 @@
0.9b3

View file

@ -1,60 +0,0 @@
network.c:126: off=ntohs(p.ip->ip_off);
network.c:134: hlen=p.ip->ip_hl * 4;
network.c:136: p.len =ntohs(p.ip->ip_len)-hlen;
network.c:139: switch(p.ip->ip_p){
network.c:159: memcpy(&p->ts,&in->ts,sizeof(struct timeval));
network.c:160: if(!(p->base=(UCHAR *)malloc(in->_len)))
network.c:162: memcpy(p->base,in->base,p->_len=in->_len);
network.c:164: p->data=p->base + (in->data -> in->base);
network.c:165: p->len=in->len;
network.c:167: p->ip=(struct ip *)(p->base + ((UCHAR *)in->ip - in->base));
network.c:168: p->tcp=(struct tcphdr *)(p->base + ((UCHAR *)in->tcp - in->base));
network.c:186: FREE(p->base);
pcap-snoop.c:2: pcap-snoop.c
pcap-snoop.c:40: $Id: pcap-snoop.c,v 1.12 2002/01/21 17:36:51 ekr Exp $
pcap-snoop.c:47:static char *RCSSTRING="$Id: pcap-snoop.c,v 1.12 2002/01/21 17:36:51 ekr Exp $";
tcppack.c:84: p->tcp=(struct tcphdr *)p->data;
tcppack.c:88: if(r=tcp_find_conn(&conn,&direction,&p->ip->ip_src,
tcppack.c:89: ntohs(p->tcp->th_sport),&p->ip->ip_dst,ntohs(p->tcp->th_dport))){
tcppack.c:96: if((p->tcp->th_flags & (TH_SYN|TH_ACK))!=TH_SYN){
tcppack.c:104: conn->i2r.seq=ntohl(p->tcp->th_seq)+1;
tcppack.c:114: if((p->tcp->th_flags & (TH_SYN|TH_ACK))!=(TH_SYN|TH_ACK))
tcppack.c:116: conn->r2i.seq=ntohl(p->tcp->th_seq)+1;
tcppack.c:117: conn->r2i.ack=ntohl(p->tcp->th_ack)+1;
tcppack.c:127: conn->i2r.ack=ntohl(p->tcp->th_ack)+1;
tcppack.c:148: if(p->tcp->th_flags & TH_SYN)
tcppack.c:150: length=p->len - (p->tcp->th_off * 4);
tcppack.c:178: if(r=tcp_create_conn(&conn,&p->ip->ip_src,ntohs(p->tcp->th_sport),
tcppack.c:179: &p->ip->ip_dst,ntohs(p->tcp->th_dport)))
tcppack.c:183: memcpy(&conn->start_time,&p->ts,sizeof(struct timeval));
tcppack.c:184: if(r=create_proto_handler(handler,ctx,&conn->analyzer,conn,&p->ts))
tcppack.c:197: off=(s)->p->tcp->th_off*4; \
tcppack.c:198: if(l>((s)->p->len-off)) ERETURN(R_BAD_DATA);\
tcppack.c:199: (s)->data=(s)->p->data + off + (l) ; \
tcppack.c:200: (s)->len=(s)->p->len - off + (l); \
tcppack.c:227: l=p->len - p->tcp->th_off * 4;
tcppack.c:238: seq=ntohl(p->tcp->th_seq);
tcppack.c:241: if(p->tcp->th_flags & TH_ACK){
tcppack.c:245: acknum=ntohl(p->tcp->th_ack);
tcppack.c:250: if(r=timestamp_diff(&p->ts,&conn->start_time,&dt))
tcppack.c:268: if(!(p->tcp->th_flags & (TH_RST)) && SEQ_LT(seq,stream->seq))
tcppack.c:310: if(_seg.p->tcp->th_flags & (TH_RST)){
tcppack.c:311: stream->close=_seg.p->tcp->th_flags & (TH_RST);
tcppack.c:319: if(_seg.p->tcp->th_flags & (TH_FIN)){
tcppack.c:320: stream->close=_seg.p->tcp->th_flags & (TH_FIN);
tcppack.c:325: if(seg->p->tcp->th_flags & (TH_FIN)){
tcppack.c:326: stream->close=_seg.p->tcp->th_flags & (TH_FIN);
tcppack.c:338: if(seg->p->tcp->th_flags & (TH_FIN) ){
tcppack.c:374: lookuphostname(&p->ip->ip_src,&src);
tcppack.c:375: lookuphostname(&p->ip->ip_dst,&dst);
tcppack.c:379: ntohs(p->tcp->th_sport),
tcppack.c:381: ntohs(p->tcp->th_dport));
tcppack.c:384: ntohl(p->tcp->th_seq),
tcppack.c:385: p->len - p->tcp->th_off *4);
tcppack.c:387: if(p->tcp->th_flags & TH_ACK)
tcppack.c:388: printf("ACK %ld ",ntohl(p->tcp->th_ack));
tcppack.c:390: if(p->tcp->th_flags & TH_FIN)
tcppack.c:392: if(p->tcp->th_flags & TH_SYN)
tcppack.c:394: if(p->tcp->th_flags & TH_RST)
tcppack.c:396: if(p->tcp->th_flags & TH_PUSH)
tcppack.c:398: if(p->tcp->th_flags & TH_URG)

View file

@ -5,37 +5,40 @@
Copyright (C) 1999-2001 RTFM, Inc.
All Rights Reserved
This package is a SSLv3/TLS protocol analyzer written by Eric Rescorla
<ekr@rtfm.com> and licensed by RTFM, Inc.
This package is a SSLv3/TLS protocol analyzer written by Eric
Rescorla <ekr@rtfm.com> and licensed by RTFM, Inc.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. All advertising materials mentioning features or use of this
software must display the following acknowledgement:
This product includes software developed by Eric Rescorla for
RTFM, Inc.
4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla may be
used to endorse or promote products derived from this
4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla may
be used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY SUCH DAMAGE.
THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
SUCH DAMAGE.
$Id: pcap-snoop.c,v 1.14 2002/09/09 21:02:58 ekr Exp $
@ -112,7 +115,7 @@ int usage()
int print_version()
{
printf("ssldump 0.9b3\n");
printf(PACKAGE_STRING "\n");
printf("Copyright (C) 1998-2001 RTFM, Inc.\n");
printf("All rights reserved.\n");
#ifdef OPENSSL

View file

@ -1,5 +0,0 @@
OBJECTS=r_assoc.o r_data.o r_errors.o r_list.c r_time.o
INCLUDES += ../includes
OBJECTS:
$(CC) $(CFLAGS) $(@:%.c

View file

@ -1,20 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_INIT(include/r_assoc.h)
dnl Checks for programs.
AC_PROG_CC
dnl Checks for libraries.
dnl Checks for header files.
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/time.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_HEADER_TIME
dnl Checks for library functions.
AC_FUNC_MEMCMP
AC_FUNC_VPRINTF
AC_OUTPUT(make/freebsd31/Makefile make/freebsd22/Makefile make/sunos413/Makefile)

View file

@ -1,106 +0,0 @@
/**
r_macros.h
Copyright (C) 1999-2000 RTFM, Inc.
All Rights Reserved
This package is a SSLv3/TLS protocol analyzer written by Eric Rescorla
<ekr@rtfm.com> and licensed by RTFM, Inc.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by Eric Rescorla for
RTFM, Inc.
4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla may be
used to endorse or promote products derived from this
software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY SUCH DAMAGE.
$Id: r_macros.h,v 1.2 2000/10/17 16:09:59 ekr Exp $
ekr@rtfm.com Tue Dec 22 10:37:32 1998
*/
#ifndef _r_macros_h
#define _r_macros_h
#if (R_USE_PROTOTYPES==1)
#define PROTO_LIST(a) a
#else
#define PROTO_LIST(a) ()
#endif
#ifndef __GNUC__
#define __FUNCTION__ "unknown"
#endif
#ifdef R_TRACE_ERRORS
#define REPORT_ERROR_(caller,a) fprintf(stderr,"%s: error %d at %s:%d (function %s)\n", \
caller,a,__FILE__,__LINE__,__FUNCTION__)
#else
#define REPORT_ERROR_(caller,a)
#endif
#ifndef ERETURN
#define ERETURN(a) do {int _r=a; if(!_r) _r=-1; REPORT_ERROR_("ERETURN",_r); return(_r);} while(0)
#endif
#ifndef ABORT
#define ABORT(a) do { int _r=a; if(!_r) _r=-1; REPORT_ERROR_("ABORT",_r); _status=_r; goto abort;} while(0)
#endif
#ifndef FREE
#define FREE(a) if(a) free(a)
#endif
#ifndef MIN
#define MIN(a,b) ((a)>(b))?(b):(a)
#endif
#ifndef MAX
#define MAX(a,b) ((b)>(a))?(b):(a)
#endif
#ifdef DEBUG
#define DBG(a) debug a
int debug(int class,char *format,...);
#else
#define DBG(a)
#endif
#ifndef RMALLOC
#define RMALLOC(a) malloc(A)
#endif
#ifndef RCALLOC
#define RCALLOC(a) calloc(1,a)
#endif
#ifndef RFREE
#define RFREE(a) if(a) free(a)
#endif
#endif

View file

@ -1,280 +0,0 @@
#
# rb_local.mk
#
# $Source$
# $Revision$
# $Date$
# $Name$
# $Disclaimer$
#
# Copyright (C) 2001, Terisa Systems, Inc.
# All Rights Reserved.
#
# ekr@terisa.com
#
#
# CONFIGURE USER-DEFINED MAKE ENVIRONMENT
#
# These fields are specified by the user. The remainder of
# this file is generated from this user-specified information.
#
# COMMON_LIB_DEFINES:
# cpp defines, with the -D flag preceeding each
#
# COMMON_LIB_INCLUDES:
# cpp include directories, with the -I flag preceeding each
#
# COMMON_LIB_INTERNAL:
# headers files which are local to a specific module directory,
# and should not be used by other parts of the toolkit or by
# the user
#
# COMMON_LIB_LIBNAME:
# the library associated with this module directory, used in
# most cases for debugging purposes
#
# COMMON_LIB_LIBPATHS:
# link-time directories to search for libraries, with the -L flag
# preceeding each
#
# COMMON_LIB_LIBRARIES:
# link-time libraries, with the -l flag preceeding each
#
# COMMON_LIB_LOCALFLAGS:
# compile-time flags specific to compiling only the files in
# this module directory--this variable should only be set in
# extremely exceptional cases
#
# COMMON_LIB_MAKEFILES:
# the makefiles
#
# COMMON_LIB_PREFIX:
# defines the module name, which also serves as the
# prefix for all the variable names defined in this file
#
# COMMON_LIB_PRIVATE:
# the private, for-toolkit-use-only API header files
#
# COMMON_LIB_PROGRAMS:
# programs to build
#
# COMMON_LIB_PUBLIC:
# the header files that define the public API for the toolkit
# and any other 'public' files that should be copied to
# the build directory
#
# COMMON_LIB_SOURCES:
# the source files to compile to object
#
COMMON_LIB_DEFINES =
COMMON_LIB_INCLUDES =
COMMON_LIB_INTERNAL =
COMMON_LIB_LIBNAME = libcommon.$(LIBSUFFIX)
COMMON_LIB_LIBPATHS =
COMMON_LIB_LIBRARIES =
COMMON_LIB_LOCALFLAGS =
COMMON_LIB_MAKEFILES = targets.mk
COMMON_LIB_PREFIX = COMMON_LIB
COMMON_LIB_PRIVATE =
COMMON_LIB_PROGRAMS =
COMMON_LIB_PUBLIC =
COMMON_LIB_SOURCES = debug.c r_assoc.c r_bitfield.c r_data.c \
r_errors.c r_list.c r_replace.c r_time.c
#
# CONFIGURE AUTOMATICALLY-GENERATED MAKE ENVIRONMENT
#
# COMMON_LIB_OBJECTS:
# object files to build
#
# COMMON_LIB_UNUSED:
# obsolete files in the module directory that are not
# used during the build process
#
# COMMON_LIB_USED:
# all files in the module directory that are used
# during the build process
#
COMMON_LIB_OBJECTS = debug.$(OBJSUFFIX) r_assoc.$(OBJSUFFIX) \
r_bitfield.$(OBJSUFFIX) r_data.$(OBJSUFFIX) \
r_errors.$(OBJSUFFIX) r_list.$(OBJSUFFIX) \
r_replace.$(OBJSUFFIX) r_time.$(OBJSUFFIX)
COMMON_LIB_UNUSED = assoc.h debug.h local.mk r_assoc_test.c r_data.h \
rb_local.mk
COMMON_LIB_USED = $(COMMON_LIB_INTERNAL:%=$(COMMON_LIB_SRCDIR)%) \
$(COMMON_LIB_MAKEFILES:%=$(COMMON_LIB_SRCDIR)%) \
$(COMMON_LIB_PRIVATE:%=$(COMMON_LIB_SRCDIR)%) \
$(COMMON_LIB_PUBLIC:%=$(COMMON_LIB_SRCDIR)%) \
$(COMMON_LIB_SOURCES:%=$(COMMON_LIB_SRCDIR)%)
#
# NOTES
#
# The following variables may be used during the build process,
# but are not defined in this file. If they are to be set
# to something other than the default blank, then they must
# be set by the calling make system.
#
# COMMON_LIB_SRCDIR:
# if the build target directory is different from the
# module directory (the source directory), then this
# variable contains the relative or full path of
# the module directory
#
# LIBARS:
# the library archive files (with fully-specified paths) that
# executables built from this module directory depend upon
#
# LIBPATHS:
# the paths to search for library archives (specified with
# the -L)
#
# LIBRARIES:
# the libraries to use while building executables from
# this module directory (specified with the -l)
#
#
# GLOBAL ENVIRONMENT
#
DEFINES += $(COMMON_LIB_DEFINES)
INCLUDES += $(COMMON_LIB_INCLUDES)
LIBPATHS += $(COMMON_LIB_LIBPATHS)
LIBRARIES += $(COMMON_LIB_LIBRARIES)
OBJECTS += $(COMMON_LIB_OBJECTS)
PUBLIC += $(COMMON_LIB_PUBLIC)
#
# GENERIC DEPENDENCIES
#
# default:
# default dependency, must be the first dependency in this makefile
#
# all:
# build everything in this module directory
#
# build:
# make only the toolkit build files of this module directory
#
# ci:
# perform an RCS check-in of this module directory
#
# clean:
# remove the compiled files
#
# clean_public:
# remove the public header files that have been copied
# to a public build directory
#
# objects:
# build the object files (this dependency is used for
# building the toolkit library)
#
# private:
# build only the private API header files
#
# public:
# build only the public API header files
#
default: $(COMMON_LIB_LIBNAME)
default: $(COMMON_LIB_PROGRAMS)
all: $(COMMON_LIB_PUBLIC)
all: $(COMMON_LIB_OBJECTS)
all: $(COMMON_LIB_LIBNAME)
all: $(COMMON_LIB_PROGRAMS)
build: $(COMMON_LIB_PUBLIC)
build: $(COMMON_LIB_OBJECTS)
ci: common_lib_ci
clean: common_lib_clean
clean_public: common_lib_clean_public
objects: $(COMMON_LIB_OBJECTS)
private: $(COMMON_LIB_PRIVATE)
public: $(COMMON_LIB_PUBLIC)
#
# LOCAL UTILITY DEPENDENCIES
#
# utility dependencies are necessary because of some
# make-isms having to do with dependencies
#
common_lib_ci:
$(CI) $(CIFLAGS) $(COMMON_LIB_USED)
common_lib_clean:
$(RM) $(RMFLAGS) $(COMMON_LIB_OBJECTS) $(COMMON_LIB_LIBNAME) $(COMMON_LIB_PROGRAMS)
common_lib_clean_public:
$(RM) $(RMFLAGS) $(COMMON_LIB_PUBLIC)
common_lib_objects: $(COMMON_LIB_OBJECTS)
common_lib_programs: $(COMMON_LIB_PROGRAMS)
common_lib_public: $(COMMON_LIB_PUBLIC)
#
# BUILD DEPENDENCIES
#
# build dependencies invoke the rule used to build each
# class of file
#
$(COMMON_LIB_LIBNAME):
$(AR) $(ARFLAGS) $@ $?
$(RANLIB) $@
$(COMMON_LIB_OBJECTS):
$(COMPILE.c) $(COMMON_LIB_SRCDIR)$(@:%.$(OBJSUFFIX)=%.c) $(DEFINES) $(INCLUDES) $(COMMON_LIB_LOCALFLAGS)
$(COMMON_LIB_PUBLIC):
$(CP) $(CPFLAGS) $(COMMON_LIB_SRCDIR)$@ $@
$(COMMON_LIB_PROGRAMS):
$(LINK.c) $@.$(OBJSUFFIX) $(LDLIBS) $(LIBS) $(LIBRARIES) $(LIBPATHS)
#LIBS above is obsolete (use LIBARARIES instead)
#
# FILE DEPENDENCIES
#
# file dependencies state, for each file that is built,
# which file(s) it depends upon
#
debug.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)debug.h
debug.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)debug.c
r_assoc.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_assoc.c
r_bitfield.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_bitfield.c
r_data.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_data.h
r_data.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_data.c
r_errors.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_errors.c
r_list.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_list.c
r_replace.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_replace.c
r_time.$(OBJSUFFIX): $(COMMON_LIB_SRCDIR)r_time.c
$(COMMON_LIB_LIBNAME): $(COMMON_LIB_OBJECTS)

41
configure vendored
View file

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69.
# Generated by GNU Autoconf 2.69 for ssldump 0.9b3p1.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -575,14 +575,13 @@ MFLAGS=
MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME=
PACKAGE_TARNAME=
PACKAGE_VERSION=
PACKAGE_STRING=
PACKAGE_BUGREPORT=
PACKAGE_URL=
PACKAGE_NAME='ssldump'
PACKAGE_TARNAME='ssldump'
PACKAGE_VERSION='0.9b3p1'
PACKAGE_STRING='ssldump 0.9b3p1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
ac_unique_file="base/pcap-snoop.c"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@ -749,7 +748,7 @@ sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
infodir='${datarootdir}/info'
htmldir='${docdir}'
dvidir='${docdir}'
@ -1249,7 +1248,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures this package to adapt to many kinds of systems.
\`configure' configures ssldump 0.9b3p1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1297,7 +1296,7 @@ Fine tuning of the installation directories:
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--docdir=DIR documentation root [DATAROOTDIR/doc/ssldump]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
@ -1314,7 +1313,9 @@ _ACEOF
fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of ssldump 0.9b3p1:";;
esac
cat <<\_ACEOF
Optional Packages:
@ -1404,7 +1405,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
configure
ssldump configure 0.9b3p1
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1952,7 +1953,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by $as_me, which was
It was created by ssldump $as_me 0.9b3p1, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -3509,7 +3510,7 @@ esac
RECORD_MOD="dummy"
ac_pcap_inc_dir="/usr/include /usr/include/pcap /usr/local/include"
ac_pcap_lib_dir="/usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/i386-linux-gnu"
ac_pcap_lib_dir="/usr/local/lib64 /usr/local/lib /usr/lib64 /usr/lib"
# Check whether --with-pcap was given.
@ -3563,7 +3564,7 @@ $as_echo_n "checking for PCAP library... " >&6; }
ac_found_pcap_lib_dir="no"
for dir in $ac_pcap_lib_dir; do
if test -f $dir/libpcap.a -o -f $dir/libpcap.so; then
save_LIBS=$LIBS
save_LIBS=$LIBS
save_LDFLAGS=$LDFLAGS
LIBS="-lpcap $LIBS"
if test "$dir" != "/usr/lib" -a "$dir" != "/usr/lib64"; then
@ -3611,7 +3612,7 @@ else
fi
ac_use_openssl="true"
ac_openssl_lib_dir="/usr/lib /usr/local /usr/local/ssl /usr/local/ssl/lib /usr/pkg /usr/lib/x86_64-linux-gnu /usr/lib/i386-linux-gnu"
ac_openssl_lib_dir="/usr/lib /usr/local /usr/local/ssl /usr/local/ssl/lib /usr/pkg"
ac_openssl_inc_dir="/usr/include /usr/local /usr/local/ssl /usr/pkg /usr/local/ssl/include"
@ -3673,7 +3674,7 @@ $as_echo_n "checking for OpenSSL libraries... " >&6; }
found_ssl="true"
fi
if $found_ssl != "false"; then
save_LIBS=$LIBS
save_LIBS=$LIBS
save_LDFLAGS=$LDFLAGS
LIBS="-lssl -lcrypto $LIBS"
LDFLAGS="-L$dir $LDFLAGS"
@ -5253,7 +5254,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by $as_me, which was
This file was extended by ssldump $as_me 0.9b3p1, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -5306,7 +5307,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
config.status
ssldump config.status 0.9b3p1
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

View file

@ -1,39 +1,42 @@
dnl Copyright (C) 1999-2000 RTFM, Inc.
dnl All Rights Reserved
dnl This package is a SSLv3/TLS protocol analyzer written by Eric Rescorla
dnl <ekr\@rtfm.com> and licensed by RTFM, Inc.
dnl This package is a SSLv3/TLS protocol analyzer written by Eric
dnl Rescorla <ekr@rtfm.com> and licensed by RTFM, Inc.
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted provided that the following conditions
dnl are met:
dnl 1. Redistributions of source code must retain the above copyright
dnl notice, this list of conditions and the following disclaimer.
dnl 2. Redistributions in binary form must reproduce the above copyright
dnl notice, this list of conditions and the following disclaimer in the
dnl documentation and/or other materials provided with the distribution.
dnl 3. All advertising materials mentioning features or use of this software
dnl must display the following acknowledgement:
dnl
dnl 2. Redistributions in binary form must reproduce the above
dnl copyright notice, this list of conditions and the following
dnl disclaimer in the documentation and/or other materials provided
dnl with the distribution.
dnl 3. All advertising materials mentioning features or use of this
dnl software must display the following acknowledgement:
dnl
dnl This product includes software developed by Eric Rescorla for
dnl RTFM, Inc.
dnl
dnl 4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla may be
dnl used to endorse or promote products derived from this
dnl 4. Neither the name of RTFM, Inc. nor the name of Eric Rescorla
dnl may be used to endorse or promote products derived from this
dnl software without specific prior written permission.
dnl
dnl THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS IS'' AND
dnl ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
dnl ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
dnl FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
dnl DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
dnl OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
dnl LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
dnl OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY SUCH DAMAGE.
dnl THIS SOFTWARE IS PROVIDED BY ERIC RESCORLA AND RTFM, INC. ``AS
dnl IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
dnl LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
dnl FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
dnl REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
dnl INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
dnl (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
dnl SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
dnl CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
dnl OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
dnl EVEN IF ADVISED OF THE POSSIBILITY SUCH DAMAGE.
dnl Process this file with autoconf to produce a configure script.
AC_INIT(base/pcap-snoop.c)
AC_INIT(ssldump, 0.9b3p1)
AC_CANONICAL_SYSTEM
dnl Checks for programs.
@ -104,7 +107,7 @@ ac_found_pcap_lib_dir="no"
for dir in $ac_pcap_lib_dir; do
if test -f $dir/libpcap.a -o -f $dir/libpcap.so; then
dnl Ok, we think we've found them, but check that they
dnl actually ontain the right functions
dnl actually contain the right functions.
save_LIBS=$LIBS
save_LDFLAGS=$LDFLAGS
LIBS="-lpcap $LIBS"
@ -182,7 +185,7 @@ if test "$ac_use_openssl" != "false"; then
fi
if $found_ssl != "false"; then
dnl Ok, we think we've found them, but check that they
dnl actually ontain the right functions
dnl actually contain the right functions.
save_LIBS=$LIBS
save_LDFLAGS=$LDFLAGS
LIBS="-lssl -lcrypto $LIBS"

View file

View file

@ -1,20 +0,0 @@
CC=gcc -g -I../../common/include -DYYDEBUG=1
YACC=bison -d -y -v
LEX=flex
OBJS=lex.yy.o y.tab.o main.o
default: all
lex.yy.c: ssl.l
$(LEX) ssl.l
y.tab.c: ssl.y
$(YACC) ssl.y
grammar: y.tab.c lex.yy.c
$(LEX) ssl.l
$(YACC) ssl.y
all: grammar $(OBJS)
$(CC) $(OBJS) -L../../common/make/freebsd31 -ly -lm

View file

@ -172,9 +172,13 @@ int ssl_decode_ctx_create(dp,keyfile,pass,keylogfile)
if(r_assoc_create(&d->session_cache))
ABORT(R_NO_MEMORY);
if(keylogfile && !(d->ssl_key_log_file=fopen(keylogfile, "r"))){
fprintf(stderr,"Failed to open ssl key log file");
ABORT(R_INTERNAL);
if (keylogfile) {
if(!(d->ssl_key_log_file=fopen(keylogfile, "r"))){
fprintf(stderr,"Failed to open ssl key log file");
ABORT(R_INTERNAL);
}
} else {
d->ssl_key_log_file = NULL;
}
X509V3_add_standard_extensions();
@ -1071,7 +1075,7 @@ static int ssl_generate_session_hash(ssl,d)
static int ssl_read_key_log_file(d)
ssl_decoder *d;
{
int r,_status,dgi,n;
int r,_status,dgi,n,i;
unsigned int t;
size_t l=0;
char *line,*label_data;
@ -1083,7 +1087,7 @@ static int ssl_read_key_log_file(d)
if(!(label_data=malloc((d->client_random->len*2)+1)))
ABORT(r);
for(int i=0;i<d->client_random->len;i++)
for(i=0;i<d->client_random->len;i++)
if(snprintf(label_data+(i*2),3,"%02x",d->client_random->data[i])!=2)
ABORT(r);
@ -1093,7 +1097,7 @@ static int ssl_read_key_log_file(d)
if(r=r_data_alloc(&d->MS,48))
ABORT(r);
for(int i=0; i < d->MS->len; i++) {
for(i=0; i < d->MS->len; i++) {
if(sscanf(line+14+65+(i*2),"%2x",&t)!=1)
ABORT(r);
*(d->MS->data+i)=(char)t;
@ -1106,7 +1110,8 @@ static int ssl_read_key_log_file(d)
}
_status=0;
abort:
fseek(d->ctx->ssl_key_log_file, SEEK_SET, 0);
if (d->ctx->ssl_key_log_file != NULL)
fseek(d->ctx->ssl_key_log_file, 0, SEEK_SET);
return(_status);
}
#endif

View file

@ -1,526 +0,0 @@
Terminals which are not used:
DOT_DOT_
STRUCT_
OPAQUE_
ENUM_
DIGITALLY_SIGNED_
COMMENT_START_
COMMENT_END_
CASE_
Grammar
rule 1 module -> typelist
rule 2 typelist -> /* empty */
rule 3 typelist -> definition typelist
rule 4 definition -> selecttype
rule 5 definition -> constant_type
rule 6 selecttype -> SELECT_ '{' selecterateds ',' selectmax '}' NAME_ ';'
rule 7 selecterateds -> selecterateds ',' selecterated
rule 8 selecterateds -> selecterated
rule 9 selectmax -> '(' NUM_ ')'
rule 10 selecterated -> selecterated_no_code
rule 11 selecterated -> selecterated_code
rule 12 selecterated_code -> NAME_ '(' NUM_ ')' CODE_
rule 13 selecterated_no_code -> NAME_ '(' NUM_ ')'
rule 14 constant_type -> CONSTANT_ '{' constants '}' NAME_ ';'
rule 15 constants -> constants constant
rule 16 constants -> constant
rule 17 constant -> NAME_ NAME_ '=' '{' constval '}' ';'
rule 18 constval -> NUM_ ',' NUM_ ',' NUM_
rule 19 constval -> NUM_ ',' NUM_
rule 20 constval -> NUM_
Terminals, with rules where they appear
$ (-1)
'(' (40) 9 12 13
')' (41) 9 12 13
',' (44) 6 7 18 19
';' (59) 6 14 17
'=' (61) 17
'{' (123) 6 14 17
'}' (125) 6 14 17
error (256)
NAME_ (257) 6 12 13 14 17
NUM_ (258) 9 12 13 18 19 20
DOT_DOT_ (259)
STRUCT_ (260)
SELECT_ (261) 6
OPAQUE_ (262)
ENUM_ (263)
DIGITALLY_SIGNED_ (264)
COMMENT_START_ (265)
CODE_ (266) 12
COMMENT_END_ (267)
CASE_ (268)
CONSTANT_ (269) 14
Nonterminals, with rules where they appear
module (23)
on left: 1
typelist (24)
on left: 2 3, on right: 1 3
definition (25)
on left: 4 5, on right: 3
selecttype (26)
on left: 6, on right: 4
selecterateds (27)
on left: 7 8, on right: 6 7
selectmax (28)
on left: 9, on right: 6
selecterated (29)
on left: 10 11, on right: 7 8
selecterated_code (30)
on left: 12, on right: 11
selecterated_no_code (31)
on left: 13, on right: 10
constant_type (32)
on left: 14, on right: 5
constants (33)
on left: 15 16, on right: 14 15
constant (34)
on left: 17, on right: 15 16
constval (35)
on left: 18 19 20, on right: 17
state 0
SELECT_ shift, and go to state 1
CONSTANT_ shift, and go to state 2
$default reduce using rule 2 (typelist)
module go to state 46
typelist go to state 3
definition go to state 4
selecttype go to state 5
constant_type go to state 6
state 1
selecttype -> SELECT_ . '{' selecterateds ',' selectmax '}' NAME_ ';' (rule 6)
'{' shift, and go to state 7
state 2
constant_type -> CONSTANT_ . '{' constants '}' NAME_ ';' (rule 14)
'{' shift, and go to state 8
state 3
module -> typelist . (rule 1)
$default reduce using rule 1 (module)
state 4
typelist -> definition . typelist (rule 3)
SELECT_ shift, and go to state 1
CONSTANT_ shift, and go to state 2
$default reduce using rule 2 (typelist)
typelist go to state 9
definition go to state 4
selecttype go to state 5
constant_type go to state 6
state 5
definition -> selecttype . (rule 4)
$default reduce using rule 4 (definition)
state 6
definition -> constant_type . (rule 5)
$default reduce using rule 5 (definition)
state 7
selecttype -> SELECT_ '{' . selecterateds ',' selectmax '}' NAME_ ';' (rule 6)
NAME_ shift, and go to state 10
selecterateds go to state 11
selecterated go to state 12
selecterated_code go to state 13
selecterated_no_code go to state 14
state 8
constant_type -> CONSTANT_ '{' . constants '}' NAME_ ';' (rule 14)
NAME_ shift, and go to state 15
constants go to state 16
constant go to state 17
state 9
typelist -> definition typelist . (rule 3)
$default reduce using rule 3 (typelist)
state 10
selecterated_code -> NAME_ . '(' NUM_ ')' CODE_ (rule 12)
selecterated_no_code -> NAME_ . '(' NUM_ ')' (rule 13)
'(' shift, and go to state 18
state 11
selecttype -> SELECT_ '{' selecterateds . ',' selectmax '}' NAME_ ';' (rule 6)
selecterateds -> selecterateds . ',' selecterated (rule 7)
',' shift, and go to state 19
state 12
selecterateds -> selecterated . (rule 8)
$default reduce using rule 8 (selecterateds)
state 13
selecterated -> selecterated_code . (rule 11)
$default reduce using rule 11 (selecterated)
state 14
selecterated -> selecterated_no_code . (rule 10)
$default reduce using rule 10 (selecterated)
state 15
constant -> NAME_ . NAME_ '=' '{' constval '}' ';' (rule 17)
NAME_ shift, and go to state 20
state 16
constant_type -> CONSTANT_ '{' constants . '}' NAME_ ';' (rule 14)
constants -> constants . constant (rule 15)
NAME_ shift, and go to state 15
'}' shift, and go to state 21
constant go to state 22
state 17
constants -> constant . (rule 16)
$default reduce using rule 16 (constants)
state 18
selecterated_code -> NAME_ '(' . NUM_ ')' CODE_ (rule 12)
selecterated_no_code -> NAME_ '(' . NUM_ ')' (rule 13)
NUM_ shift, and go to state 23
state 19
selecttype -> SELECT_ '{' selecterateds ',' . selectmax '}' NAME_ ';' (rule 6)
selecterateds -> selecterateds ',' . selecterated (rule 7)
NAME_ shift, and go to state 10
'(' shift, and go to state 24
selectmax go to state 25
selecterated go to state 26
selecterated_code go to state 13
selecterated_no_code go to state 14
state 20
constant -> NAME_ NAME_ . '=' '{' constval '}' ';' (rule 17)
'=' shift, and go to state 27
state 21
constant_type -> CONSTANT_ '{' constants '}' . NAME_ ';' (rule 14)
NAME_ shift, and go to state 28
state 22
constants -> constants constant . (rule 15)
$default reduce using rule 15 (constants)
state 23
selecterated_code -> NAME_ '(' NUM_ . ')' CODE_ (rule 12)
selecterated_no_code -> NAME_ '(' NUM_ . ')' (rule 13)
')' shift, and go to state 29
state 24
selectmax -> '(' . NUM_ ')' (rule 9)
NUM_ shift, and go to state 30
state 25
selecttype -> SELECT_ '{' selecterateds ',' selectmax . '}' NAME_ ';' (rule 6)
'}' shift, and go to state 31
state 26
selecterateds -> selecterateds ',' selecterated . (rule 7)
$default reduce using rule 7 (selecterateds)
state 27
constant -> NAME_ NAME_ '=' . '{' constval '}' ';' (rule 17)
'{' shift, and go to state 32
state 28
constant_type -> CONSTANT_ '{' constants '}' NAME_ . ';' (rule 14)
';' shift, and go to state 33
state 29
selecterated_code -> NAME_ '(' NUM_ ')' . CODE_ (rule 12)
selecterated_no_code -> NAME_ '(' NUM_ ')' . (rule 13)
CODE_ shift, and go to state 34
$default reduce using rule 13 (selecterated_no_code)
state 30
selectmax -> '(' NUM_ . ')' (rule 9)
')' shift, and go to state 35
state 31
selecttype -> SELECT_ '{' selecterateds ',' selectmax '}' . NAME_ ';' (rule 6)
NAME_ shift, and go to state 36
state 32
constant -> NAME_ NAME_ '=' '{' . constval '}' ';' (rule 17)
NUM_ shift, and go to state 37
constval go to state 38
state 33
constant_type -> CONSTANT_ '{' constants '}' NAME_ ';' . (rule 14)
$default reduce using rule 14 (constant_type)
state 34
selecterated_code -> NAME_ '(' NUM_ ')' CODE_ . (rule 12)
$default reduce using rule 12 (selecterated_code)
state 35
selectmax -> '(' NUM_ ')' . (rule 9)
$default reduce using rule 9 (selectmax)
state 36
selecttype -> SELECT_ '{' selecterateds ',' selectmax '}' NAME_ . ';' (rule 6)
';' shift, and go to state 39
state 37
constval -> NUM_ . ',' NUM_ ',' NUM_ (rule 18)
constval -> NUM_ . ',' NUM_ (rule 19)
constval -> NUM_ . (rule 20)
',' shift, and go to state 40
$default reduce using rule 20 (constval)
state 38
constant -> NAME_ NAME_ '=' '{' constval . '}' ';' (rule 17)
'}' shift, and go to state 41
state 39
selecttype -> SELECT_ '{' selecterateds ',' selectmax '}' NAME_ ';' . (rule 6)
$default reduce using rule 6 (selecttype)
state 40
constval -> NUM_ ',' . NUM_ ',' NUM_ (rule 18)
constval -> NUM_ ',' . NUM_ (rule 19)
NUM_ shift, and go to state 42
state 41
constant -> NAME_ NAME_ '=' '{' constval '}' . ';' (rule 17)
';' shift, and go to state 43
state 42
constval -> NUM_ ',' NUM_ . ',' NUM_ (rule 18)
constval -> NUM_ ',' NUM_ . (rule 19)
',' shift, and go to state 44
$default reduce using rule 19 (constval)
state 43
constant -> NAME_ NAME_ '=' '{' constval '}' ';' . (rule 17)
$default reduce using rule 17 (constant)
state 44
constval -> NUM_ ',' NUM_ ',' . NUM_ (rule 18)
NUM_ shift, and go to state 45
state 45
constval -> NUM_ ',' NUM_ ',' NUM_ . (rule 18)
$default reduce using rule 18 (constval)
state 46
$ go to state 47
state 47
$ go to state 48
state 48
$default accept