Hi folks, right now iphlpapi uses autoconf to detect if getifaddrs is available, and only uses it to enumerate IPv6 addresses.
I'm thinking of replacing the current IPv4 enumeration code, which uses ioctl/SIOCGIFCONF, with getifaddrs. The reason I'm leaning toward replacing, rather than adding side-by-side with the current code, is that getifaddrs is commonly available: it's available on all recent versions of Linux, as well as on FreeBSD and MacOS. There might be some platform somewhere that's disenfranchised by this, but I'm not sure it's worth the code complexity to maintain the current code.
Any strenuous objections?
Reasons to use getifaddrs rather than ioctls: 1. SIOCGIFCONF is actually pretty fiddly, and is the current code is broken on FreeBSD, or FreeBSD's support is broken (bug 27653.) 2. SIOCGIFFLAGS is apparently broken on current Linux versions. I haven't found any bug against Wine or Linux about that, I just noticed it while testing the existing code.
Thanks, --Juan
Hello Juan,
Juan Lang wrote:
right now iphlpapi uses autoconf to detect if getifaddrs is available, and only uses it to enumerate IPv6 addresses.
I'm thinking of replacing the current IPv4 enumeration code, which uses ioctl/SIOCGIFCONF, with getifaddrs. The reason I'm leaning toward replacing, rather than adding side-by-side with the current code, is that getifaddrs is commonly available: it's available on all recent versions of Linux, as well as on FreeBSD and MacOS. There
recent versions of Linux as of which year?
might be some platform somewhere that's disenfranchised by this, but I'm not sure it's worth the code complexity to maintain the current code.
What about Solaris/OpenSolaris? That's the only other major system where Wine can be made to run.
Any strenuous objections?
Reasons to use getifaddrs rather than ioctls:
- SIOCGIFCONF is actually pretty fiddly, and is the current code is
broken on FreeBSD, or FreeBSD's support is broken (bug 27653.) 2. SIOCGIFFLAGS is apparently broken on current Linux versions. I haven't found any bug against Wine or Linux about that, I just noticed it while testing the existing code.
bye michael
I'm thinking of replacing the current IPv4 enumeration code, which uses ioctl/SIOCGIFCONF, with getifaddrs. The reason I'm leaning toward replacing, rather than adding side-by-side with the current code, is that getifaddrs is commonly available: it's available on all recent versions of Linux, as well as on FreeBSD and MacOS. There
recent versions of Linux as of which year?
Good question. When I was writing this code in 2003, the stable version of Debian didn't support it. I haven't seen a Linux system that doesn't support it since then, but I've only checked periodically.
might be some platform somewhere that's disenfranchised by this, but I'm not sure it's worth the code complexity to maintain the current code.
What about Solaris/OpenSolaris? That's the only other major system where Wine can be made to run.
Ah. Okay, that's an important objection. I'll go with keeping the current code, then.
Thanks, --Juan