2a I hope somebody feels my pain through this crude recital
Changed:
* Direct RT_NETLINK to getifaddrs(3) for getting local addresses
* If getent hosts 127.0.0.1 remains untranslated,
just warn instead of failing test
Fixed:
* DATE_EPOCH being affected by locale
* #anchor in README tag signing link
* getopt() on char=unsigned char platforms
2 I don't talk about it, I just smoke 'em
Removed:
* Don't even try /proc/net/ip_conntrack (compat removed in Linux 4.9)
/proc/net/nf_conntrack is the only supported back-end (Linux 2.6.20)
* -?hv
Changed:
* autohell-based build system and metadata and rpm .spec -> Makefile
(Changelog and credits from README went to tags)
* Error for unopenable /proc/net/nf_conntrack to be reasonable
* -s and -d parsing and canonicalisation with getaddrinfo(3)
instead of gethostbyname(3) (also supports IPv6)
* Print the port if one was given instead of just for tcp|udp
* Usage string to a standard one
* -S disables -D and -D disables -S
(-SD used to simply yield no results)
* Don't format udp without a no-status as UNREPLIED
* -N ("NAT-host") -> -G ("Gateway") (-N still accepted as an alias)
* README for -ng
Fixed:
* All errors and warnings (mostly due to being ancient)
* Extraneous arguments not being ignored
* A >6-column protocol not having a space after it
New:
* Internal and final binary tests
* Get current addresses for -LR with rtnetlink(7) IFA_ADDRESS
instead of ioctl(SIOCGIFCONF) (to also get IP6 addresses)
(they are also normalised for IP6 compatibility)
* An optional argument to read (or -) instead of /proc/net/nf_conntrack
* Format ip6 addresses with ports with []
* Normalise addresses even with -n
* $NETSTAT_NAT_LOCAL_ADDRS can replace this system's real addresses
* -g to filter by gateway address (like -s and -d)
* -r gate and -r gate-port to sort by gateway
* "NAT-host Address" -> "Gateway Address"
* Manual
* -X (width = max-length ip6 address+port)
* -X1234 (width = 1234)
Internal:
* Licences in REUSE format, SPDX headers, RCS tag deletion
* chmod -x non-executables
* Useless header inlined into the TU
* clang-format
* Utility functions/data/types staticified, cleaned out
* New parser for nf_conntrack lines
tokenise, decode each token,
instead of strcasestr()ing the whole line once or twice for each field
* Accept all L4 protocol names by name
(except "unknown" which, if looked up, is cached)
* boolification
* Don't free before exit
* Connection table char*** -> struct connection* with integer -> named fields
* Don't overallocate (200-8)*sizeof(void*) for each connection
* Connections sorted with qsort(),
instead of some inlined bespoke sorting algorithm
* If both the protocol and the sort row are the same,
disambiguate by sorting by all other fields in order
* Test and build manual PDFs on builds.sr.ht
* Map IP and port to hostname and service with getnameinfo(3)
instead of gethostbyaddr(3) &c.
1.4.10 Archived upstream 1.4.10
version: 1.4.10
- fix for properly display DNAT over SNAT connection
1.4.9 Archived upstream 1.4.9
version: 1.4.9
- Added -R option to show routed connections instead of showing them with -L
- Some allocation & free bugs were squashed
1.4.8 Archived upstream 1.4.8
version: 1.4.8
- Added nf_conntrack support
- Added NAT host connection information (used IP and port for NAT)
1.4.7 Archived upstream 1.4.7
version: 1.4.7
- fix for read-in (ip_conntrack), previous versions could sometimes hang or
segfault on some systems.
- fix for displaying dnat over snat connections.
- changed my email to danny@tweegy.nl and changed homepage url
Thanks:
-------------------------------------------------------------------------------
Supaflyster for submitting patch for proper read-in on some systems and
pointing out dnat over snat connections problem, which weren't shown in output.
(v1.4.7)
1.4.6 Archived upstream 1.4.6
version: 1.4.6
- gcc 2.96 compatability fix
- enlarged readin of ip_conntrack line
1.4.5 Archived upstream 1.4.5
version: 1.4.5
- Protocol resolving instead of raw
1.4.4 Archived upstream 1.4.4
version: 1.4.4
- Extraction of IPs and ports more dynamicly so it can be used with layer7 and
maybe others when layout of ip_conntrack changes
1.4.3 Archived upstream 1.4.3
version: 1.4.3
- Memory allocation operations and copiing of variables have been made saver.
- Changed my e-mail to danny@tweegy.demon.nl
Thanks:
-------------------------------------------------------------------------------
Gumundur D. Haraldsson <gdh@binhex.EU.org> for submitting a patch which does a
more properly memory allocation and saver copies of variables. (merged in v1.4.3)
1.4.2 Archived upstream 1.4.2
version: 1.4.2
- Fixed hussle up displayed states when sorting
- Added support to display unknown protocols (displayed as raw)
- Fixes rpmlint warnings in .spec for RPM users (1.4.1-2.src.rpm allready
contains allready new .spec file)
- Some more understandable memory alloaction errors, displays now how many bytes
are allocated
- Removed unused variables
- Check in code to exit, when there are no NAT connections
- Compatible with uLibC
Thanks:
-------------------------------------------------------------------------------
Marceln for writing the man-page and making the v1.2 .rpm and src.rpm, which can
be downloaded at his page. http://http://www.xs4all.nl/~marceln/rpm/
and for submitting a patch for v1.4.1 which removes unused variables, included
a more understandable memory allocate error and making netstat-nat compatible
with uLibC.
Jose Pedro Oliveira <jpo@di.uminho.pt> for submitting a patch for the .spec file
which fixes some rpmlint warnings.
1.4.1 Archived upstream 1.4.1
version: 1.4.1
- Changed memory allocation of entries to be dynamic. (was only noticeble if you
support large numbers NAT connections)
- Added argument to display version
1.4 Archived upstream 1.4
version: 1.4
- Option to display connections to NAT box self.
- Option to sort output by selection.
1.3.1 Archived upstream 1.3.1
version: 1.3
- Resolves portnumbers to names if listed in services.
- Re-arranged layout, space is now being used more efficiently.
- Added a Makefile and a header file.
- Some small code changes.
version: 1.3.1
- Fixed segmentation fault when displaying icmp connections, was trying to
display ports also, which only occured in version 1.3
- Fixed bug, displayed wrong icmp connection with state REPLIED.
- Option to strip output-header.
1.2.1 Archived upstream 1.2.1
version: 1.2.1
- Adds a nice manpage and a README update
Thanks:
-------------------------------------------------------------------------------
Marceln for writing the man-page and making the v1.2 .rpm and src.rpm, which can
be downloaded at his page. http://http://www.xs4all.nl/~marceln/rpm/
1.2 Archived upstream 1.2
version: 1.2
- display DNAT connection support
- display by destination IP/hostname
- display by SNAT or DNAT connections
- extended view for hostnames
1.1 Archived upstream 1.1
version: 1.1
- display by source IP/hostname
1.0 Archived upstream 1.0
version: 1.0
- Initial release, with some basic features
Generated by dwww version 1.16 on Mon Mar 30 00:02:48 CEST 2026.