Multiple fixes for BSD get_gateway code, remove libdnet#772
Merged
phillip-stephens merged 4 commits intozmap:mainfrom Feb 5, 2024
Merged
Multiple fixes for BSD get_gateway code, remove libdnet#772phillip-stephens merged 4 commits intozmap:mainfrom
phillip-stephens merged 4 commits intozmap:mainfrom
Conversation
Fixes get_iface_hw_addr() on macOS, where --source-mac was needed in at least some cases. Tested on macOS 14.2.1 and FreeBSD 14.0, but getifaddrs(3) is generally portable across all BSD variants.
Fixes get_hw_addr on FreeBSD where the approach used by libdnet, PF_ROUTE with RTF_LLINFO, no longer works and -G was needed.
Contributor
|
This looks good, definitely going to be nice to not have to supply |
phillip-stephens
approved these changes
Feb 5, 2024
Contributor
phillip-stephens
left a comment
There was a problem hiding this comment.
LGTM, thanks @droe !
droe
added a commit
to droe/zmap
that referenced
this pull request
Feb 7, 2024
This leftover bit was the result of a collision of two in-flight PRs. The last use of _SYSTYPE_BSD was removed along with libdnet in zmap#772, while zmap#771 concurrently added the -D_SYSTYPE_BSD to CMakeLists.txt. _SYSTYPE_BSD is a rather archaic define. libdnet might have used it for compat with now historical systems/compilers, but I do not think it served any purpose beyond that. Certainly, modern FreeBSD, NetBSD and macOS do not reference it. It seems safe to remove.
zakird
pushed a commit
that referenced
this pull request
Feb 7, 2024
This leftover bit was the result of a collision of two in-flight PRs. The last use of _SYSTYPE_BSD was removed along with libdnet in #772, while #771 concurrently added the -D_SYSTYPE_BSD to CMakeLists.txt. _SYSTYPE_BSD is a rather archaic define. libdnet might have used it for compat with now historical systems/compilers, but I do not think it served any purpose beyond that. Certainly, modern FreeBSD, NetBSD and macOS do not reference it. It seems safe to remove.
This was referenced Feb 10, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes and modernisations for BSD
get_gatewaycode:get_iface_hw_addr()on macOS, where--source-macwas needed in at least some cases, depending on libdnet, by rewriting it using getifaddrs(3) in lieu of libdnet. getifaddrs(3) is generally portable across all BSD variants and it had already been used forget_iface_ip.get_hw_addr()on FreeBSD, where--gateway-macwas needed, by rewriting it usingsysctl(2)in lieu of libdnet.get_default_ifaceandget_default_gw.Tested on macOS Sonoma as well as FreeBSD 14.0.
(Apologies for extending the scope of an already open PR, but it seemed to make more sense to reason about these changes as a whole, not separately. Happy to split into multiple PRs if you prefer.)