Hi Hurd,
I've been working recently on making dhcpcd compatible with both stacks, pfinet and lwip. This required the changes I'm submitting with the attached patches: 1. pfinet: Set default address and mask to 0.0.0.0 and 255.0.0.0 I think this was a bug, pfinet was supposed to set some default values to uninitialized interfaces, but it was writting on the wrong variable. Due to that we had to set the values explicitly in the dhclient init script: https://salsa.debian.org/debian/isc-dhcp/-/blob/master/debian/dhclient-script.hurd?ref_type=heads#L184 Not really required, but better just fix it. This also makes pfinet match what lwip does. 2. pfinet: socket.h: define `put_cmsg` I found that changes in the RPC handler were not enough: https://cgit.git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=c7d3e0f0dd5017eec2dd0e6852d05246d63c7111 pfinet was in fact not writing to the control block, so a few small changes in the internals are required. This patch is about the function that actually writes the control block, which was defined but never called. And the file that defined it was not even being compiled. Trying to compile it causes some additional errors I don't have the energy to investigate, so I just made it inline in the place of the old fake function. 3. pfinet: ip_cmsg_recv: empty control block when not requested. After the previous patch, the control block is only written when requested, but when not, it leaves some trash in the structure if I recall correctly. This patch ensures the control data is always properly set, including the expected values when control data is not requested. 4. lwip: Implement SIOCDIFADDR dhcpcd sends this ioctl, the patch implements it. 5. lwip: pfinet_getroutes RPC: set INADDR_ANY for empty gateways This matches what pfinet does, which is also what dhcpcd expects
