}
}
- if (!original) {
- *p++ = 1; /* client message */
+ vp = pairfind(packet->vps, DHCP2ATTR(256));
+ if (vp) {
+ *p++ = vp->vp_integer & 0xff;
} else {
- *p++ = 2; /* server message */
+ if (!original) {
+ *p++ = 1; /* client message */
+ } else {
+ *p++ = 2; /* server message */
+ }
}
*p++ = 1; /* hardware type = ethernet */
*p++ = 6; /* 6 bytes of ethernet */
- *p++ = 0; /* hops */
+
+ vp = pairfind(packet->vps, DHCP2ATTR(259));
+ if (vp) {
+ *p++ = vp->vp_integer & 0xff;
+ } else {
+ *p++ = 0; /* hops */
+ }
if (original) { /* Xid */
memcpy(p, original->data + 4, 4);