Sorry, i don't know (havn't read maybe :) ) how to submit patches.
I'll paste here
First one ... allows receive DHCP-Inform messages.

--- dhcp.c      2008-06-23 02:46:17.000000000 +0300
+++ dhcp_new.c  2008-06-23 02:45:26.000000000 +0300
@@ -190,7 +190,7 @@
        if ((packet->data[240] != 53) ||
            (packet->data[241] != 1) ||
            (packet->data[242] == 0) ||
-           (packet->data[242] >= 8)) {
+           (packet->data[242] > 8)) {
                fprintf(stderr, "Unknown, or badly formatted DHCP packet\n");
                rad_free(&packet);
                return NULL;


Second one ... patches for updating reply->code correctly depending on modules 
answer(last DHCP-Message-Type update will be in action). Actualy client 
must!!! supply in some update section DHCP-Message-Type. 
Otherwise i think no reply at all(not tested) :) .
And i think there no need to respond with NAK in reject, fail and other cases 
(and DECLINE response is client side only). There is no need for that garbage 
traffic. If module fails then fails. NAK message to client will not help in 
this case :) Or maybe i don't want to respond at all (ignore) :)

--- dhcpd.c     2008-06-23 02:38:57.000000000 +0300
+++ dhcpd_new.c 2008-06-23 02:43:19.000000000 +0300
@@ -46,17 +46,13 @@
        switch (rcode) {
        case RLM_MODULE_OK:
        case RLM_MODULE_UPDATED:
-               if (request->packet->code == (PW_DHCP_DISCOVER)) {
-                       request->reply->code = PW_DHCP_OFFER;
-                       break;
-
-               } else if (request->packet->code == PW_DHCP_REQUEST) {
-                       request->reply->code = PW_DHCP_ACK;
-                       break;
-               }
-
-               /* FALL-THROUGH */
+               vp = pairfind(request->reply->vps, DHCP2ATTR(53));
+               if (vp) {
+                   request->reply->code = vp->vp_integer + PW_DHCP_OFFSET;
+                   break;
+               }

+       break; /* no DHCP-Message-Type in reply, maybe other modules will 
update.*/
        default:
        case RLM_MODULE_REJECT:
        case RLM_MODULE_FAIL:
-
List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

Reply via email to