History log of /openbsd-current/usr.sbin/tcpdump/print-rip.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.18 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.17 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.16 16-Nov-2015 mmcc

Remove remaining instances of the register keyword.

ok deraadt@


Revision tags: OPENBSD_5_8_BASE
# 1.15 29-Mar-2015 bluhm

Most packets generate one line in tcpdump. For AH and RIP there
was an extra line without benefit. Remove the new-line in printf
to make parsing easier.
OK lteo@ mikeb@


Revision tags: OPENBSD_5_7_BASE
# 1.14 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)


# 1.13 14-Aug-2014 mpi

No use for <netinet/in_systm.h> nor <netinet/tcpip.h>.


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 OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.12 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.11 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE 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 OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.10 05-Dec-2000 jakob

fix RIPv0 (RFC 1058) printing; <james@squish.net>


Revision tags: OPENBSD_2_8_BASE
# 1.9 13-Oct-2000 jakob

fix build on alpha with -Werror; David Leonard <david.leonard@csee.uq.edu.au>


# 1.8 03-Oct-2000 ho

Compile with -Wall. Add $OpenBSD$. (jakob@ ok)


# 1.7 18-Jun-2000 jakob

Improve RIP support; PR#1266, James Ponder <james@oaktree.co.uk>

* Fixes the way version numbers are handled so that it is compliant
with RFC 1058 in the order that you should look at things.

* Adds support for the authentication attribute with cleartext passwords.

* Improves readability in output.

* Handles version 0 of RIP and unknown conditions a lot better


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

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_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.17 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.16 16-Nov-2015 mmcc

Remove remaining instances of the register keyword.

ok deraadt@


Revision tags: OPENBSD_5_8_BASE
# 1.15 29-Mar-2015 bluhm

Most packets generate one line in tcpdump. For AH and RIP there
was an extra line without benefit. Remove the new-line in printf
to make parsing easier.
OK lteo@ mikeb@


Revision tags: OPENBSD_5_7_BASE
# 1.14 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)


# 1.13 14-Aug-2014 mpi

No use for <netinet/in_systm.h> nor <netinet/tcpip.h>.


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 OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.12 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.11 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE 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 OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.10 05-Dec-2000 jakob

fix RIPv0 (RFC 1058) printing; <james@squish.net>


Revision tags: OPENBSD_2_8_BASE
# 1.9 13-Oct-2000 jakob

fix build on alpha with -Werror; David Leonard <david.leonard@csee.uq.edu.au>


# 1.8 03-Oct-2000 ho

Compile with -Wall. Add $OpenBSD$. (jakob@ ok)


# 1.7 18-Jun-2000 jakob

Improve RIP support; PR#1266, James Ponder <james@oaktree.co.uk>

* Fixes the way version numbers are handled so that it is compliant
with RFC 1058 in the order that you should look at things.

* Adds support for the authentication attribute with cleartext passwords.

* Improves readability in output.

* Handles version 0 of RIP and unknown conditions a lot better


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

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_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.16 16-Nov-2015 mmcc

Remove remaining instances of the register keyword.

ok deraadt@


Revision tags: OPENBSD_5_8_BASE
# 1.15 29-Mar-2015 bluhm

Most packets generate one line in tcpdump. For AH and RIP there
was an extra line without benefit. Remove the new-line in printf
to make parsing easier.
OK lteo@ mikeb@


Revision tags: OPENBSD_5_7_BASE
# 1.14 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)


# 1.13 14-Aug-2014 mpi

No use for <netinet/in_systm.h> nor <netinet/tcpip.h>.


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 OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.12 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.11 07-Oct-2007 deraadt

trash $Header goo which is just annoying; 5595


Revision tags: OPENBSD_2_9_BASE OPENBSD_3_0_BASE 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 OPENBSD_3_9_BASE OPENBSD_4_0_BASE OPENBSD_4_1_BASE OPENBSD_4_2_BASE
# 1.10 05-Dec-2000 jakob

fix RIPv0 (RFC 1058) printing; <james@squish.net>


Revision tags: OPENBSD_2_8_BASE
# 1.9 13-Oct-2000 jakob

fix build on alpha with -Werror; David Leonard <david.leonard@csee.uq.edu.au>


# 1.8 03-Oct-2000 ho

Compile with -Wall. Add $OpenBSD$. (jakob@ ok)


# 1.7 18-Jun-2000 jakob

Improve RIP support; PR#1266, James Ponder <james@oaktree.co.uk>

* Fixes the way version numbers are handled so that it is compliant
with RFC 1058 in the order that you should look at things.

* Adds support for the authentication attribute with cleartext passwords.

* Improves readability in output.

* Handles version 0 of RIP and unknown conditions a lot better


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

INET6
DHCP/BOOTP
tcp & udp checksum detection
numerous bugfixes


Revision tags: OPENBSD_2_1_BASE OPENBSD_2_2_BASE OPENBSD_2_3_BASE OPENBSD_2_4_BASE OPENBSD_2_5_BASE OPENBSD_2_6_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