On 10/14/25 00:40, Samuel Thibault wrote:
FMI, Which ones exactly? seems like an oversight in the Hurd pfinet.
From `#include <lwip/posix/inet.h>`
```
#ifdef LWIP_UNIX_HURD
#define IP_PKTINFO 8
struct in_pktinfo {
unsigned int ipi_ifindex; /* Interface index */
struct in_addr ipi_addr; /* Destination (from header) address */
};
#endif /* LWIP_UNIX_HURD */
```
pfinet indeed doesn't really support pktinfo currently.
The sad thing here is that lwip's and linux' struct in_pktinfo are not
the same, linux adds the ipi_spec_dst field, so using lwip's structure
would not really allow us to add this field later on.
We'd rather introduce our own header that exposes the API/ABI that we
expect tcp/ip translators to expose for struct in_pktinfo (translating
that from/to their internal implementation if needed).
I've been checking this. So we should:
1. Add the definitions to `i386-gnu/bits/in.h` (That's where other IP_*
macros are)
2. Don't define `ipi_spec_dst` since lwip doesn't support it and pfinet
doesn't support pktinfo in general.
3. The lwip package already #includes <netinet/in.h> so it would use the
new definition.
4. About pfinet, since pktinfo is not supported, I guess the only thing
we can do is to return an EOPNOTSUP from somewhere when the client tries
to use pktinfo (is this already done?).
Does this look correct?