freebsd: Rewrite netload implementation with getifaddrs and ioctl
Instead of using a documented and official API to get information related to a network interface, the old implementation uses kvm library to access kernel memory directly, which is not easy to understand and can be easily broken by changing kernel symbols or structs. Besides, FreeBSD 11 hides severai required kernel struct definitions from userspace programs, which causes compilation error because the definition of 'struct ifaddr' is not available unless _KERNEL is defined. This patch is primarily authored by Gleb Smirnoff <glebius@FreeBSD.org>, with other simple modification made by Antoine Brodin <antoine@FreeBSD.org>, Koop Mast <kwm@FreeBSD.org> and Ting-Wei Lan <lantw@src.gnome.org> applied. It was first submitted to FreeBSD ports and has been used by FreeBSD users for more than 18 months on all supported versions of FreeBSD. https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=194187 https://svnweb.freebsd.org/changeset/ports/371082 https://github.com/freebsd/freebsd-ports-gnome/commit/be884cd https://github.com/freebsd/freebsd-ports-gnome/commit/422a418 https://github.com/freebsd/freebsd-ports-gnome/commit/a4b1913 https://bugzilla.gnome.org/show_bug.cgi?id=770165
parent
b68b2ec6
Please register or sign in to comment