History log of /openbsd-current/usr.sbin/tcpdump/print-bootp.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.25 01-Dec-2021 deraadt

we do not need 'struct mbuf; struct rtentry;' to satisfy some ancient unix
variant that made a header file mistake.
ok jsg


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE OPENBSD_6_9_BASE OPENBSD_7_0_BASE
# 1.24 24-Jan-2020 procter

- (void)printf() -> printf(); the cast adds clutter for little value.
- fprintf(stdout, ...) -> printf()
- fputs(x, stdout) -> printf(); for consistency.
fputs is twice as fast on atom x5-Z8300@1.44GHz but Amdahl sees a pure printf
tcpdump only 2% slower than a pure fputs (for constant strings) tcpdump
to /dev/null across a 20MB/~170k packet pcap file.

ok dlg@ for fputs and ok tedu@ krw@ deraadt@ a2k19 for the rest


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.23 06-Jul-2018 dlg

Rework UDP parsing, particularly around IP addresses.

This originally started as trying to put a consistent space between
the UDP header information and the payload parsing, but while doing
that I noticed inconsistent IPv4 vs IPv6 handling.

Apart from the default "srcip.srcport > dstip.dstpor" output, all
the other places that IP addresses were printed assumed IPv4. It
looks like it is possible that udp_print() can be called without
an IP header, which made these blind IPv4 prints turn into NULL
derefs.

This fixes the problem above by only having a single place that
prints the addresses out, and makes sure to get the difference
between IPv4, IPv6 and no IP correct.

This changes how the checksum is calculated. It incrementally builds
the UDP checksum by feeding the IPv4 and v6 addresses in separately,
then using common code for the rest of the pseudo header and actual
payload.

Lastly, this does make printing the space between the UDP header
and its payload consistent. The UDP code is now responsible for
adding a space after itself so the payload parsers don't have to.
They got it wrong in some cases anyway, so this should be a lot
more uniform.

help and ok sthen@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.22 22-Dec-2015 mmcc

assign pointers to NULL rather than 0


# 1.21 18-Nov-2015 mmcc

Remove memory.h includes.

ok deraadt@


# 1.20 15-Nov-2015 mmcc

Remove more register keywords.

ok daniel@, discussed on hackers@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.19 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.18 27-Oct-2013 guenther

If a constant string needs a name, use a static const array instead of a
pointer or non-const array, as that minimizes the symbols, maximizes the
placement into read-only memory, and avoids warnings from gcc -Wformat=2
when they're used as format strings.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.15 08-Jan-2007 stevesk

c should be u_char for printing option numbers. fix parameter request
list option numbers >127 being negative. ok krw@


Revision tags: OPENBSD_4_0_BASE
# 1.14 21-May-2006 canacar

Fix size checks for bootp packets. Problem found and initial patch
from pedro@. ok moritz@


Revision tags: OPENBSD_3_9_BASE
# 1.13 17-Nov-2005 stevesk

fix byteorder for "s" and "l" formats; ok henning@ krw@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.12 19-Feb-2002 millert

We live in an ANSI C world. Remove lots of gratuitous #ifdef __STDC__ cruft.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 03-Oct-2000 ho

Add $OpenBSD$. (jakob@ ok)


Revision tags: OPENBSD_2_7_BASE
# 1.10 26-Apr-2000 jakob

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_6_BASE
# 1.9 16-Sep-1999 brad

bring more inline with tcpdump 3.4


# 1.8 28-Jul-1999 jakob

- Merge some changes from tcpdump 3.4
-a flag; attempt to convert network and broadcast addresses to names
Improved signal handling
Miscellaneous fixes and typos
OSPF MD5 authentication support

- -X flag; emacs-hexl print (including ascii)

- Add ECN bits to TCP and IP headers

- IKE & IPsec (ESP & AH) support

OK deraadt@


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.7 08-Jul-1998 deraadt

length check bp_file; cgd


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.6 25-Jul-1997 mickey

#if __STDC__ --> #ifdef __STDC__


Revision tags: OPENBSD_2_1_BASE
# 1.5 12-Dec-1996 bitblt

*** empty log message ***


Revision tags: OPENBSD_2_0_BASE
# 1.4 13-Jul-1996 mickey

it is 3.2 now.


# 1.3 10-Jun-1996 deraadt

sync to latest


# 1.2 04-Mar-1996 mickey

Updating to the latest LBL release.
Sun's SKIP support added.


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.24 24-Jan-2020 procter

- (void)printf() -> printf(); the cast adds clutter for little value.
- fprintf(stdout, ...) -> printf()
- fputs(x, stdout) -> printf(); for consistency.
fputs is twice as fast on atom x5-Z8300@1.44GHz but Amdahl sees a pure printf
tcpdump only 2% slower than a pure fputs (for constant strings) tcpdump
to /dev/null across a 20MB/~170k packet pcap file.

ok dlg@ for fputs and ok tedu@ krw@ deraadt@ a2k19 for the rest


Revision tags: OPENBSD_6_4_BASE OPENBSD_6_5_BASE OPENBSD_6_6_BASE
# 1.23 06-Jul-2018 dlg

Rework UDP parsing, particularly around IP addresses.

This originally started as trying to put a consistent space between
the UDP header information and the payload parsing, but while doing
that I noticed inconsistent IPv4 vs IPv6 handling.

Apart from the default "srcip.srcport > dstip.dstpor" output, all
the other places that IP addresses were printed assumed IPv4. It
looks like it is possible that udp_print() can be called without
an IP header, which made these blind IPv4 prints turn into NULL
derefs.

This fixes the problem above by only having a single place that
prints the addresses out, and makes sure to get the difference
between IPv4, IPv6 and no IP correct.

This changes how the checksum is calculated. It incrementally builds
the UDP checksum by feeding the IPv4 and v6 addresses in separately,
then using common code for the rest of the pseudo header and actual
payload.

Lastly, this does make printing the space between the UDP header
and its payload consistent. The UDP code is now responsible for
adding a space after itself so the payload parsers don't have to.
They got it wrong in some cases anyway, so this should be a lot
more uniform.

help and ok sthen@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.22 22-Dec-2015 mmcc

assign pointers to NULL rather than 0


# 1.21 18-Nov-2015 mmcc

Remove memory.h includes.

ok deraadt@


# 1.20 15-Nov-2015 mmcc

Remove more register keywords.

ok daniel@, discussed on hackers@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.19 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.18 27-Oct-2013 guenther

If a constant string needs a name, use a static const array instead of a
pointer or non-const array, as that minimizes the symbols, maximizes the
placement into read-only memory, and avoids warnings from gcc -Wformat=2
when they're used as format strings.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.15 08-Jan-2007 stevesk

c should be u_char for printing option numbers. fix parameter request
list option numbers >127 being negative. ok krw@


Revision tags: OPENBSD_4_0_BASE
# 1.14 21-May-2006 canacar

Fix size checks for bootp packets. Problem found and initial patch
from pedro@. ok moritz@


Revision tags: OPENBSD_3_9_BASE
# 1.13 17-Nov-2005 stevesk

fix byteorder for "s" and "l" formats; ok henning@ krw@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.12 19-Feb-2002 millert

We live in an ANSI C world. Remove lots of gratuitous #ifdef __STDC__ cruft.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 03-Oct-2000 ho

Add $OpenBSD$. (jakob@ ok)


Revision tags: OPENBSD_2_7_BASE
# 1.10 26-Apr-2000 jakob

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_6_BASE
# 1.9 16-Sep-1999 brad

bring more inline with tcpdump 3.4


# 1.8 28-Jul-1999 jakob

- Merge some changes from tcpdump 3.4
-a flag; attempt to convert network and broadcast addresses to names
Improved signal handling
Miscellaneous fixes and typos
OSPF MD5 authentication support

- -X flag; emacs-hexl print (including ascii)

- Add ECN bits to TCP and IP headers

- IKE & IPsec (ESP & AH) support

OK deraadt@


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.7 08-Jul-1998 deraadt

length check bp_file; cgd


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.6 25-Jul-1997 mickey

#if __STDC__ --> #ifdef __STDC__


Revision tags: OPENBSD_2_1_BASE
# 1.5 12-Dec-1996 bitblt

*** empty log message ***


Revision tags: OPENBSD_2_0_BASE
# 1.4 13-Jul-1996 mickey

it is 3.2 now.


# 1.3 10-Jun-1996 deraadt

sync to latest


# 1.2 04-Mar-1996 mickey

Updating to the latest LBL release.
Sun's SKIP support added.


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


# 1.23 06-Jul-2018 dlg

Rework UDP parsing, particularly around IP addresses.

This originally started as trying to put a consistent space between
the UDP header information and the payload parsing, but while doing
that I noticed inconsistent IPv4 vs IPv6 handling.

Apart from the default "srcip.srcport > dstip.dstpor" output, all
the other places that IP addresses were printed assumed IPv4. It
looks like it is possible that udp_print() can be called without
an IP header, which made these blind IPv4 prints turn into NULL
derefs.

This fixes the problem above by only having a single place that
prints the addresses out, and makes sure to get the difference
between IPv4, IPv6 and no IP correct.

This changes how the checksum is calculated. It incrementally builds
the UDP checksum by feeding the IPv4 and v6 addresses in separately,
then using common code for the rest of the pseudo header and actual
payload.

Lastly, this does make printing the space between the UDP header
and its payload consistent. The UDP code is now responsible for
adding a space after itself so the payload parsers don't have to.
They got it wrong in some cases anyway, so this should be a lot
more uniform.

help and ok sthen@


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE
# 1.22 22-Dec-2015 mmcc

assign pointers to NULL rather than 0


# 1.21 18-Nov-2015 mmcc

Remove memory.h includes.

ok deraadt@


# 1.20 15-Nov-2015 mmcc

Remove more register keywords.

ok daniel@, discussed on hackers@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.19 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.18 27-Oct-2013 guenther

If a constant string needs a name, use a static const array instead of a
pointer or non-const array, as that minimizes the symbols, maximizes the
placement into read-only memory, and avoids warnings from gcc -Wformat=2
when they're used as format strings.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.15 08-Jan-2007 stevesk

c should be u_char for printing option numbers. fix parameter request
list option numbers >127 being negative. ok krw@


Revision tags: OPENBSD_4_0_BASE
# 1.14 21-May-2006 canacar

Fix size checks for bootp packets. Problem found and initial patch
from pedro@. ok moritz@


Revision tags: OPENBSD_3_9_BASE
# 1.13 17-Nov-2005 stevesk

fix byteorder for "s" and "l" formats; ok henning@ krw@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.12 19-Feb-2002 millert

We live in an ANSI C world. Remove lots of gratuitous #ifdef __STDC__ cruft.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 03-Oct-2000 ho

Add $OpenBSD$. (jakob@ ok)


Revision tags: OPENBSD_2_7_BASE
# 1.10 26-Apr-2000 jakob

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_6_BASE
# 1.9 16-Sep-1999 brad

bring more inline with tcpdump 3.4


# 1.8 28-Jul-1999 jakob

- Merge some changes from tcpdump 3.4
-a flag; attempt to convert network and broadcast addresses to names
Improved signal handling
Miscellaneous fixes and typos
OSPF MD5 authentication support

- -X flag; emacs-hexl print (including ascii)

- Add ECN bits to TCP and IP headers

- IKE & IPsec (ESP & AH) support

OK deraadt@


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.7 08-Jul-1998 deraadt

length check bp_file; cgd


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.6 25-Jul-1997 mickey

#if __STDC__ --> #ifdef __STDC__


Revision tags: OPENBSD_2_1_BASE
# 1.5 12-Dec-1996 bitblt

*** empty log message ***


Revision tags: OPENBSD_2_0_BASE
# 1.4 13-Jul-1996 mickey

it is 3.2 now.


# 1.3 10-Jun-1996 deraadt

sync to latest


# 1.2 04-Mar-1996 mickey

Updating to the latest LBL release.
Sun's SKIP support added.


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision


Revision tags: OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.22 22-Dec-2015 mmcc

assign pointers to NULL rather than 0


# 1.21 18-Nov-2015 mmcc

Remove memory.h includes.

ok deraadt@


# 1.20 15-Nov-2015 mmcc

Remove more register keywords.

ok daniel@, discussed on hackers@


Revision tags: OPENBSD_5_7_BASE OPENBSD_5_8_BASE
# 1.19 16-Jan-2015 deraadt

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible. Annotate <sys/param.h> lines with their current reasons. Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc. Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution. These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)


Revision tags: OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.18 27-Oct-2013 guenther

If a constant string needs a name, use a static const array instead of a
pointer or non-const array, as that minimizes the symbols, maximizes the
placement into read-only memory, and avoids warnings from gcc -Wformat=2
when they're used as format strings.

ok deraadt@


Revision tags: OPENBSD_4_7_BASE OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE
# 1.17 27-Oct-2009 deraadt

rcsid[] and sccsid[] and copyright[] are essentially unmaintained (and
unmaintainable). these days, people use source. these id's do not provide
any benefit, and do hurt the small install media
(the 33,000 line diff is essentially mechanical)
ok with the idea millert, ok dms


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE
# 1.16 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.15 08-Jan-2007 stevesk

c should be u_char for printing option numbers. fix parameter request
list option numbers >127 being negative. ok krw@


Revision tags: OPENBSD_4_0_BASE
# 1.14 21-May-2006 canacar

Fix size checks for bootp packets. Problem found and initial patch
from pedro@. ok moritz@


Revision tags: OPENBSD_3_9_BASE
# 1.13 17-Nov-2005 stevesk

fix byteorder for "s" and "l" formats; ok henning@ krw@


Revision tags: OPENBSD_3_1_BASE OPENBSD_3_2_BASE OPENBSD_3_3_BASE OPENBSD_3_4_BASE OPENBSD_3_5_BASE OPENBSD_3_6_BASE OPENBSD_3_7_BASE OPENBSD_3_8_BASE
# 1.12 19-Feb-2002 millert

We live in an ANSI C world. Remove lots of gratuitous #ifdef __STDC__ cruft.


Revision tags: OPENBSD_2_8_BASE OPENBSD_2_9_BASE OPENBSD_3_0_BASE
# 1.11 03-Oct-2000 ho

Add $OpenBSD$. (jakob@ ok)


Revision tags: OPENBSD_2_7_BASE
# 1.10 26-Apr-2000 jakob

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_6_BASE
# 1.9 16-Sep-1999 brad

bring more inline with tcpdump 3.4


# 1.8 28-Jul-1999 jakob

- Merge some changes from tcpdump 3.4
-a flag; attempt to convert network and broadcast addresses to names
Improved signal handling
Miscellaneous fixes and typos
OSPF MD5 authentication support

- -X flag; emacs-hexl print (including ascii)

- Add ECN bits to TCP and IP headers

- IKE & IPsec (ESP & AH) support

OK deraadt@


Revision tags: OPENBSD_2_4_BASE OPENBSD_2_5_BASE
# 1.7 08-Jul-1998 deraadt

length check bp_file; cgd


Revision tags: OPENBSD_2_2_BASE OPENBSD_2_3_BASE
# 1.6 25-Jul-1997 mickey

#if __STDC__ --> #ifdef __STDC__


Revision tags: OPENBSD_2_1_BASE
# 1.5 12-Dec-1996 bitblt

*** empty log message ***


Revision tags: OPENBSD_2_0_BASE
# 1.4 13-Jul-1996 mickey

it is 3.2 now.


# 1.3 10-Jun-1996 deraadt

sync to latest


# 1.2 04-Mar-1996 mickey

Updating to the latest LBL release.
Sun's SKIP support added.


# 1.1 18-Oct-1995 deraadt

branches: 1.1.1;
Initial revision