- Remove dependency on netifaces
- Improve errors when attempting to sniff on unknown interfaces
- Updated required Python version from 3.6 to 3.7
- Tweaks to get things mostly working out-of-the-box on Windows
- Tweaks to async handling (this likely requires a full modernization overhaul)
- Have
DNSLookupChef
quietly ignore DNS packets without aqd
field - Have
nd-sniff
produce some startup initialization output - Documentation tweaks
- Updated websockets and scapy to latest versions
Updates to dependencies
- Changed to websockets v7 to fix security warnings
- Switched to main scapy package now that it supports python 3
- Updated docs to explain that nd-sniff might need to be run as root
- Reverting README back to rst from markdown (to support pypi)
- Now requires Python 3.6 or higher
- Updates to get documentation to build on readthedocs
This release introduces breaking changes.
- Renamed CLI tools
nd-shifty
is nownd-hub
nd-snifty
is nownd-sniff
nd-printer
is nownd-print
nd-info
is nownd-hubdetails
nd-status
is nownd-hubstatus
- Changed behavior of commandline tools (new and changed flags, colorized output)
- DumplingChefs now
return
dumpling payloads from their packet and interval handlers rather than callingsend_dumpling()
- The
--chef-module
flag tond-sniff
now supports standalone Python files - The
DumplingEater.on_dumpling()
handler is now passed aDumpling
instance not a dumpling dict. - The Dumpling class now has a
from_json()
factory method for creating a Dumpling instance from a JSON-serialized dumpling - DumplingKitchens now take care of creating and sending Dumplings created from the DumplingChef handler payloads
- Changed default sniffer filter to
‘tcp or udp or arp’
to meet the needs of the sample chefs - Changed dumpling
creation_time
from float microseconds to float milliseconds - DumplingEater’s
chefs
parameter renamed tochef_filter
- Changed SystemStatus dumpling payload:
”total_dumplings_sent”
renamed to“total_dumplings_out”
- added
”total_dumplings_in”
”info_from_shifty”
(under”dumpling_eaters”
and”dumpling_kitchens”
) renamed to”info_from_hub”
- Renamed InvalidDumplingError to InvalidDumpling and added InvalidDumplingPayload exception
- Removed
commandline_helper()
from DumplingEater (no longer useful after the migration toclick
) - Removed ability to configure kitchens and chefs with an external config file (it added unnecessary complexity)
- Simplified logging support
- Allowed for logging config JSON to be overridden with the
NETDUMPLINGS_LOGGING_CONFIG
environment variable - Changed logging timestamps to GMT,
YYYY-MM-DDThh:mm:ss.sss
- Added a
__repr__()
to classes - Replaced
argparse
withclick
for commandline argument parsing - Added developer dependencies:
flake8
for linting andpytest
for tests - Added unit tests
- Added type hints
- Updated documentation
- snifty now maintains more information on the chefs it's sending packets to
- Added time to ARPChef dumpling payload
- Added time of last lookup to DNSLookupChef
- Changed time format to float milliseconds
- Minor code style and documentation tweaks
- First actual github release (0.0.1 was really just the first git commit)
- Initial release