[Dnsmasq-discuss] NETLINK_NO_ENOBUFS not defined on old platforms

Geert Stappers stappers at stappers.nl
Fri Mar 20 06:40:17 GMT 2020


On Fri, Mar 20, 2020 at 02:18:18AM +0000, Roy Marples wrote:
> On 19/03/2020 22:01, Simon Kelley wrote:
> > http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=0506a5ed4e56863627c54aedad30ad61221292ef
> > 
> > 
> > should handle both old kernel header files and old kernels, in any
> > combination.
> 
> I really dislike this approach because it makes the assumption that no other
> symbol will take No 5.
> 
> Whilst this might be true for generic linux, is it true for customised linux?
> Or to put it another way I can point to many examples cross BSD where the
> ioctls differ in number but not name.
> 
> You might take the view "So what? We just support generic linux.".
> 
> I have started to take the hard stance with Arch Linux which shipped latest
> kernel headers and support that on an old LTS kernel. It's not maintainable
> because I've had 3 instances where dhcpcd used to do this and then promptly
> crashed on newer kernels because they had customised headers.
> 
> Modern software should not need this hack. Either #ifdef around it or
> require userland headers to define it. Don't hardcode it as it's not
> userlands responsibility to do it.
> 
> See the similar case where OpenBSD removed a ioctl but let it in the header
> - even worse!!
 
|$ git pull
|Already up to date.
|$ git branch | grep \*
|* master
|$ git log -p 0506a5ed4e56863627^1...0506a5ed4e56863627 | sed -n 107,111p
| 
|+#ifndef NETLINK_NO_ENOBUFS
|+#define NETLINK_NO_ENOBUFS 5
|+#endif
| 
|$ 
 

In case more  #ifdef   is wanted,  sent patches ...



Regards
Geert Stappers
-- 
Silence is hard to parse



More information about the Dnsmasq-discuss mailing list