]> Zhao Yanbai Git Server - minix.git/commitdiff
LWIP - Fix for dhcpd broadcast to work after boot
authorTomas Hruby <tom@minix3.org>
Thu, 7 Apr 2011 07:44:27 +0000 (07:44 +0000)
committerTomas Hruby <tom@minix3.org>
Thu, 7 Apr 2011 07:44:27 +0000 (07:44 +0000)
Dhcp only works if devices are configured with a broadcast source
address at the begining as it currently uses raw ip sockets and the
sockets sets the source address. It is a quick hack and proper hdcpd
fix is preferable

servers/lwip/driver.c

index 6299da79ccbf3f259685ec39142aca0138f73b86..fb3657d1c238250fb6c01f601d44d43e9408cbd9 100644 (file)
@@ -411,7 +411,14 @@ void driver_up(const char * label, endpoint_t ep)
 
        nic->state = DRV_IDLE;
 
-       if (!netif_add(&nic->netif, &ip_addr_none, &ip_addr_none, &ip_addr_none,
+       /*
+        * FIXME
+        *
+        * We set the initial ip to 0.0.0.0 to make dhcpd broadcasing work
+        * at the very begining. dhcp should use raw socket but it is a little
+        * tricy in the current dhcp implementation
+        */
+       if (!netif_add(&nic->netif, &ip_addr_any, &ip_addr_none, &ip_addr_none,
                                nic, ethernetif_init, ethernet_input)) {
                printf("LWIP : failed to add device /dev/%s\n", nic->name);
                nic->drv_ep = NONE;