From 3fae3036aafeb8ed7ac4306d2decd79dc697a668 Mon Sep 17 00:00:00 2001 From: "Alan T. DeKok" Date: Thu, 10 Mar 2022 17:15:51 -0500 Subject: [PATCH] loop over input VPs. we don't call extend_option() yet. Just cleaning up --- src/protocols/dhcpv4/encode.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) 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 */ -- 2.47.3