diff options
Diffstat (limited to 'accel-pppd/ctrl/ipoe/dhcpv4.c')
-rw-r--r-- | accel-pppd/ctrl/ipoe/dhcpv4.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/accel-pppd/ctrl/ipoe/dhcpv4.c b/accel-pppd/ctrl/ipoe/dhcpv4.c index 8f536ca..bc2ecad 100644 --- a/accel-pppd/ctrl/ipoe/dhcpv4.c +++ b/accel-pppd/ctrl/ipoe/dhcpv4.c @@ -818,7 +818,7 @@ out_err: return -1; } -int dhcpv4_send_nak(struct dhcpv4_serv *serv, struct dhcpv4_packet *req) +int dhcpv4_send_nak(struct dhcpv4_serv *serv, struct dhcpv4_packet *req, const char *err) { struct dhcpv4_packet *pack; int val, r; @@ -844,6 +844,9 @@ int dhcpv4_send_nak(struct dhcpv4_serv *serv, struct dhcpv4_packet *req) if (req->relay_agent && dhcpv4_packet_add_opt(pack, 82, req->relay_agent->data, req->relay_agent->len)) goto out_err; + if (err && dhcpv4_packet_add_opt(pack, 56, err, strlen(err))) + goto out_err; + *pack->ptr++ = 255; if (conf_verbose) { |