diff --git a/RELNOTES b/RELNOTES index 672a7d69..d6b9ac0f 100644 --- a/RELNOTES +++ b/RELNOTES @@ -158,6 +158,9 @@ suggested fixes to . - A bug was repaired in subencapsulation support, where spaces separated by empty spaces would not get included. +- A bug in dhclient was repaired which caused it to send parameter request + lists of 55 bytes in length no matter how long the declared PRL was. + Changes since 3.1.0a3 - Some spelling fixes. diff --git a/client/dhclient.c b/client/dhclient.c index 2aec1a7e..ee2a0e14 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -32,7 +32,7 @@ #ifndef lint static char ocopyright[] = -"$Id: dhclient.c,v 1.150 2007/05/19 18:47:13 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n"; +"$Id: dhclient.c,v 1.151 2007/05/21 18:16:54 dhankins Exp $ Copyright (c) 2004-2007 Internet Systems Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -2001,12 +2001,13 @@ void make_client_options (client, lease, type, sid, rip, prl, op) if (!buffer_allocate (&bp, i, MDL)) log_error ("can't make parameter list buffer."); else { + unsigned code = DHO_DHCP_PARAMETER_REQUEST_LIST; + for (i = 0; prl [i]; i++) bp -> data [i] = prl [i]; - i = DHO_DHCP_PARAMETER_REQUEST_LIST; if (!(option_code_hash_lookup(&option, dhcp_universe.code_hash, - &i, 0, MDL) && + &code, 0, MDL) && make_const_option_cache(&oc, &bp, NULL, i, option, MDL))) log_error ("can't make option cache");