udhcpd: note missing sanity checks on INFORM message handling
authorDenys Vlasenko <vda.linux@googlemail.com>
Sun, 4 Apr 2010 20:36:34 +0000 (22:36 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sun, 4 Apr 2010 20:36:34 +0000 (22:36 +0200)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
networking/udhcp/dhcpd.c

index 2d1d5de..e484733 100644 (file)
@@ -247,11 +247,23 @@ static void send_inform(struct dhcp_packet *oldpacket)
 {
        struct dhcp_packet packet;
 
-       /* "The server responds to a DHCPINFORM message by sending a DHCPACK
+       /* "If a client has obtained a network address through some other means
+        * (e.g., manual configuration), it may use a DHCPINFORM request message
+        * to obtain other local configuration parameters.  Servers receiving a
+        * DHCPINFORM message construct a DHCPACK message with any local
+        * configuration parameters appropriate for the client without:
+        * allocating a new address, checking for an existing binding, filling
+        * in 'yiaddr' or including lease time parameters.  The servers SHOULD
+        * unicast the DHCPACK reply to the address given in the 'ciaddr' field
+        * of the DHCPINFORM message.
+        * ...
+        * The server responds to a DHCPINFORM message by sending a DHCPACK
         * message directly to the address given in the 'ciaddr' field
         * of the DHCPINFORM message.  The server MUST NOT send a lease
         * expiration time to the client and SHOULD NOT fill in 'yiaddr'."
         */
+//TODO: do a few sanity checks: is ciaddr set?
+//Better yet: is ciaddr == IP source addr?
        init_packet(&packet, oldpacket, DHCPACK);
        add_server_options(&packet);