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

Reply via email to