It does nothing other than fingerpint FR as a DHCP server.
It's supposed to be zero in server packets
memcpy(p, &lvalue, 4);
p += 4;
- /* DHCP-Gateway-IP-Address */
- if ((vp = pairfind(packet->vps, DHCP2ATTR(266)))) {
+ /*
+ * DHCP-Gateway-IP-Address
+ *
+ * It's only sent in client messages. For responses from
+ * the server, it is always zero.
+ */
+ if ((packet->data[0] == 1) &&
+ (vp = pairfind(packet->vps, DHCP2ATTR(266)))) {
lvalue = vp->vp_ipaddr;
} else {
lvalue = htonl(INADDR_ANY);