Comment 5 for bug 1327412

Revision history for this message
patpat (masottaus) wrote :

I think I have found/solved this bug;
The problem is located at ipconfig (klibc-utils) not implementing the DHCP standard as it should at the file
/klibc-2.0.3/usr/kinit/ipconfig/dhcp_proto.c

old:
static int dhcp_send(struct netdev *dev, struct iovec *vec)
{
...
 bootp.yiaddr = dev->ip_addr; //this line must be replaced by the following two lines
...
}

new:
static int dhcp_send(struct netdev *dev, struct iovec *vec)
{
...
        bootp.yiaddr = INADDR_ANY;
        bootp.flags = htons(0x800);
...
}

This bug does not affect 100% of the DHCP servers as some of them are more forgiving than others with client protocol mistakes;
for those needing a quick solution for PXE booting see/get Serva complementary INITRD_N11.GZ which includes the already patched ipconfig

http://www.vercot.com/~serva/an/NonWindowsPXE3.html