From: Alan T. DeKok Date: Thu, 10 Mar 2022 22:15:51 +0000 (-0500) Subject: loop over input VPs. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fae3036aafeb8ed7ac4306d2decd79dc697a668;p=thirdparty%2Ffreeradius-server.git loop over input VPs. we don't call extend_option() yet. Just cleaning up --- diff --git a/src/protocols/dhcpv4/encode.c b/src/protocols/dhcpv4/encode.c index 8c1059ec149..250b92b17b1 100644 --- a/src/protocols/dhcpv4/encode.c +++ b/src/protocols/dhcpv4/encode.c @@ -304,11 +304,19 @@ static ssize_t encode_rfc_hdr(fr_dbuff_t *dbuff, */ if (da->flags.array) { // len = encode_array(&work_dbuff, da_stack, depth, cursor, encode_ctx); - len = -1; + return -1; /* not done yet */ } else { - len = encode_value(&work_dbuff, da_stack, depth, cursor, encode_ctx); + fr_pair_t *vp; + + do { + len = encode_value(&work_dbuff, da_stack, depth, cursor, encode_ctx); + if (len < 0) return len; /* @todo return the correct offset, but whatever */ + + vp = fr_dcursor_current(cursor); + } while (vp && (vp->da == da)); } - if (len < 0) return len; + + len = fr_dbuff_used(&work_dbuff) - 2; if (len > 255) return PAIR_ENCODE_FATAL_ERROR; /* todo fixme */