From: Arran Cudbard-Bell Date: Wed, 13 May 2020 20:49:53 +0000 (-0500) Subject: dbuff: Dedup dbuff code X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9efd59eb0c5f7bedafae41335f2eef211191843e;p=thirdparty%2Ffreeradius-server.git dbuff: Dedup dbuff code --- diff --git a/src/lib/util/dbuff.h b/src/lib/util/dbuff.h index d7ea0ac119f..2ceeb5f22c3 100644 --- a/src/lib/util/dbuff.h +++ b/src/lib/util/dbuff.h @@ -339,139 +339,107 @@ static inline ssize_t fr_dbuff_memset(fr_dbuff_t *dbuff, uint8_t c, size_t inlen } #define FR_DBUFF_MEMSET_RETURN(_dbuff, _c, _inlen) FR_DBUFF_RETURN(fr_dbuff_memset, _dbuff, _c, _inlen) +#define FR_DBUFF_NUM_IN_FUNC(_type) \ +static inline ssize_t fr_dbuff_##_type##_in(fr_dbuff_t *dbuff, _type##_t num) \ +{ \ + size_t freespace = fr_dbuff_remaining(dbuff); \ + fr_assert(!dbuff->is_const); \ + if (sizeof(_type##_t) > freespace) return -(sizeof(_type##_t) - freespace); \ + fr_net_from_##_type(dbuff->p, num); \ + dbuff->p += sizeof(_type##_t); \ + return dbuff->parent ? _fr_dbuff_advance(dbuff->parent, sizeof(_type##_t)) : ((ssize_t) sizeof(_type##_t)); \ +} +FR_DBUFF_NUM_IN_FUNC(uint16) +FR_DBUFF_NUM_IN_FUNC(uint32) +FR_DBUFF_NUM_IN_FUNC(uint64) +FR_DBUFF_NUM_IN_FUNC(int16) +FR_DBUFF_NUM_IN_FUNC(int32) +FR_DBUFF_NUM_IN_FUNC(int64) + /** Copy an unsigned 16-bit integer into a buffer in wire format (big endian) * * @param[in] dbuff to copy data to * @param[in] num value to copy * @return - * 0 no data set - * >0 (2, actually) the number of bytes set in the dbuff - * <0 the number of bytes required + * - 0 no data set + * - >0 the number of bytes added to the dbuff (2). + * - <0 the number of bytes required */ -static inline ssize_t fr_dbuff_net_encode_uint16(fr_dbuff_t *dbuff, uint16_t num) -{ - size_t freespace = fr_dbuff_remaining(dbuff); - - fr_assert(!dbuff->is_const); - - if (sizeof(uint16_t) > freespace) return -(sizeof(uint16_t) - freespace); - - fr_net_from_uint16(dbuff->p, num); - dbuff->p += sizeof(uint16_t); - - return dbuff->parent ? _fr_dbuff_advance(dbuff->parent, sizeof(uint16_t)) : ((ssize_t) sizeof(uint16_t)); -} -#define FR_DBUFF_NET_FROM_UINT16_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_net_from_uint16, _dbuff, _num) +#define FR_DBUFF_UINT16_IN_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_uint16_in, _dbuff, _num) /** Copy an unsigned 32-bit integer into a buffer in wire format (big endian) * - * @param[in] dbuff to copy data to - * @param[in] num value to copy + * @param[in] _dbuff to copy data to + * @param[in] _num value to copy * @return - * 0 no data set - * >0 (4, actually) the number of bytes set in the dbuff - * <0 the number of bytes required + * - 0 no data set + * - >0 the number of bytes added to the dbuff (4). + * - <0 the number of bytes required */ -static inline ssize_t fr_dbuff_net_encode_uint32(fr_dbuff_t *dbuff, uint32_t num) -{ - size_t freespace = fr_dbuff_remaining(dbuff); - - fr_assert(!dbuff->is_const); - - if (sizeof(uint32_t) > freespace) return -(sizeof(uint32_t) - freespace); - - fr_net_from_uint32(dbuff->p, num); - dbuff->p += sizeof(uint32_t); - - return dbuff->parent ? _fr_dbuff_advance(dbuff->parent, sizeof(uint32_t)) : ((ssize_t) sizeof(uint32_t)); -} -#define FR_DBUFF_NET_FROM_UINT32_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_net_from_uint32, _dbuff, _num) +#define FR_DBUFF_UINT32_IN_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_uint32_in, _dbuff, _num) /** Copy an unsigned 64-bit integer into a buffer in wire format (big endian) * * @param[in] dbuff to copy data to * @param[in] num value to copy * @return - * 0 no data set - * >0 (8, actually) the number of bytes set in the dbuff - * <0 the number of bytes required + * - 0 no data set + * - >0 the number of bytes added to the dbuff (8). + * - <0 the number of bytes required */ -static inline ssize_t fr_dbuff_net_encode_uint64(fr_dbuff_t *dbuff, uint64_t num) -{ - size_t freespace = fr_dbuff_remaining(dbuff); - - fr_assert(!dbuff->is_const); - - if (sizeof(uint64_t) > freespace) return -(sizeof(uint64_t) - freespace); - - fr_net_from_uint64(dbuff->p, num); - dbuff->p += sizeof(uint64_t); - - return dbuff->parent ? _fr_dbuff_advance(dbuff->parent, sizeof(uint64_t)) : ((ssize_t) sizeof(uint64_t)); -} -#define FR_DBUFF_NET_FROM_UINT64_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_net_from_uint64, _dbuff, _num) +#define FR_DBUFF_UINT64_IN_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_uint64_in, _dbuff, _num) /** Copy a signed 16-bit integer into a buffer in wire format (big endian) * * @param[in] dbuff to copy data to * @param[in] num value to copy * @return - * 0 no data set - * >0 (2, actually) the number of bytes set in the dbuff - * <0 the number of bytes required + * - 0 no data set + * - >0 the number of bytes added to the dbuff (2). + * - <0 the number of bytes required */ -static inline ssize_t fr_dbuff_net_encode_int16(fr_dbuff_t *dbuff, int16_t num) -{ - return fr_dbuff_net_encode_uint16(dbuff, (uint16_t) num); -} -#define FR_DBUFF_NET_FROM_INT16_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_net_from_int16, _dbuff, _num) +#define FR_DBUFF_INT16_IN_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_int16_in, _dbuff, _num) /** Copy a signed 32-bit integer into a buffer in wire format (big endian) * * @param[in] dbuff to copy data to * @param[in] num value to copy * @return - * 0 no data set - * >0 (4, actually) the number of bytes set in the dbuff - * <0 the number of bytes required + * - 0 no data set + * - >0 the number of bytes added to the dbuff (4). + * - <0 the number of bytes required */ -static inline ssize_t fr_dbuff_net_encode_int32(fr_dbuff_t *dbuff, int32_t num) -{ - return fr_dbuff_net_encode_uint32(dbuff, (uint32_t) num); -} -#define FR_DBUFF_NET_FROM_INT32_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_net_from_int32, _dbuff, _num) +#define FR_DBUFF_INT32_IN_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_int32_in,, _dbuff, _num) /** Copy a signed 64-bit integer into a buffer in wire format (big endian) * * @param[in] dbuff to copy data to * @param[in] num value to copy * @return - * 0 no data set - * >0 (8, actually) the number of bytes set in the dbuff - * <0 the number of bytes required + * - 0 no data set + * - >0 the number of bytes added to the dbuff (8). + * - <0 the number of bytes required */ -static inline ssize_t fr_dbuff_net_encode_int64(fr_dbuff_t *dbuff, int64_t num) -{ - return fr_dbuff_net_encode_uint64(dbuff, (uint64_t) num); -} -#define FR_DBUFF_NET_FROM_UINT64_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_net_from_uint64, _dbuff, _num) +#define FR_DBUFF_INT64_IN_RETURN(_dbuff, _num) FR_DBUFF_RETURN(fr_dbuff_int64_in, _dbuff, _num) -#define fr_dbuff_net_encode(dbuff, value) \ +#define fr_dbuff_in(dbuff, value) \ _Generic((value), \ - int16_t : fr_dbuff_net_encode_int16(dbuff, (int16_t) value), \ - int32_t : fr_dbuff_net_encode_int32(dbuff, (int32_t) value), \ - int64_t : fr_dbuff_net_encode_int64(dbuff, (int64_t) value), \ - uint16_t : fr_dbuff_net_encode_uint16(dbuff, (uint16_t) value), \ - uint32_t : fr_dbuff_net_encode_uint32(dbuff, (uint32_t) value), \ - uint64_t : fr_dbuff_net_encode_uint64(dbuff, (uint64_t) value) \ + int16_t : fr_dbuff_int16_in(dbuff, (int16_t)value), \ + int32_t : fr_dbuff_int32_in(dbuff, (int32_t)value), \ + int64_t : fr_dbuff_int64_in(dbuff, (int64_t)value), \ + uint16_t : fr_dbuff_uint16_in(dbuff, (uint16_t)value), \ + uint32_t : fr_dbuff_uint32_in(dbuff, (uint32_t)value), \ + uint64_t : fr_dbuff_uint64_in(dbuff, (uint64_t)value) \ ) -static inline ssize_t fr_dbuff_net_encode_uint64v(fr_dbuff_t *dbuff, uint64_t num) +static inline ssize_t fr_dbuff_uint64v_in(fr_dbuff_t *dbuff, uint64_t num) { - size_t num_bytes = ROUND_UP_DIV((size_t)fr_high_bit_pos(num), 8); + size_t ret; + ret = ROUND_UP_DIV((size_t)fr_high_bit_pos(num | 0x08), 8); num = ntohll(num); - return fr_dbuff_memcpy_in(dbuff, ((uint8_t *)&num) + (sizeof(uint64_t) - num_bytes), num_bytes); + + return fr_dbuff_memcpy_in(dbuff, ((uint8_t *)&num) + (sizeof(uint64_t) - ret), ret); } /** @} */ diff --git a/src/lib/util/dbuff_tests.c b/src/lib/util/dbuff_tests.c index 2af3c28933a..5450dd2cdd7 100644 --- a/src/lib/util/dbuff_tests.c +++ b/src/lib/util/dbuff_tests.c @@ -44,7 +44,7 @@ static void test_dbuff_init_no_parent(void) /** Test the various dbuff_net_encode() functions and macros * - * @note Passing constants to fr_dbuff_net_encode() as it is written results in + * @note Passing constants to fr_dbuff_in() as it is written results in * warnings about narrowing casts on the constants--but those casts are in * the underlying inlined fr_net_from*() functions. They have to be there; * that's how those functions work. (The tests worked despite the warnings.) @@ -66,7 +66,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, u16val) == sizeof(uint16_t)); + TEST_CHECK(fr_dbuff_in(&dbuff, u16val) == sizeof(uint16_t)); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); @@ -74,7 +74,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, u32val) == sizeof(uint32_t)); + TEST_CHECK(fr_dbuff_in(&dbuff, u32val) == sizeof(uint32_t)); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -84,7 +84,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, u64val) == sizeof(uint64_t)); + TEST_CHECK(fr_dbuff_in(&dbuff, u64val) == sizeof(uint64_t)); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -98,7 +98,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, i16val) == sizeof(int16_t)); + TEST_CHECK(fr_dbuff_in(&dbuff, i16val) == sizeof(int16_t)); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); @@ -106,7 +106,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, i32val) == sizeof(int32_t)); + TEST_CHECK(fr_dbuff_in(&dbuff, i32val) == sizeof(int32_t)); TEST_CHECK(buff[0] == 0x00); TEST_CHECK(buff[1] == 0x00); TEST_CHECK(buff[2] == 0xd3); @@ -117,7 +117,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, i64val) == sizeof(int64_t)); + TEST_CHECK(fr_dbuff_in(&dbuff, i64val) == sizeof(int64_t)); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -130,25 +130,25 @@ static void test_dbuff_net_encode(void) TEST_CASE("Generate wire format variable-width"); memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x12) == 1); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x12) == 1); TEST_CHECK(buff[0] == 0x12); memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x1234) == 2); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x1234) == 2); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x123456) == 3); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x123456) == 3); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x12345678) == 4); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x12345678) == 4); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -156,7 +156,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x123456789a) == 5); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x123456789a) == 5); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -165,7 +165,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x123456789abc) == 6); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x123456789abc) == 6); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -175,7 +175,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x123456789abcde) == 7); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x123456789abcde) == 7); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -186,7 +186,7 @@ static void test_dbuff_net_encode(void) memset(buff, 0, sizeof(buff)); fr_dbuff_init(&dbuff, buff, sizeof(buff)); - TEST_CHECK(fr_dbuff_net_encode_uint64v(&dbuff, 0x123456789abcdef0) == 8); + TEST_CHECK(fr_dbuff_uint64v_in(&dbuff, 0x123456789abcdef0) == 8); TEST_CHECK(buff[0] == 0x12); TEST_CHECK(buff[1] == 0x34); TEST_CHECK(buff[2] == 0x56); @@ -199,7 +199,7 @@ static void test_dbuff_net_encode(void) TEST_CASE("Refuse to write to too-small space"); fr_dbuff_init(&dbuff, buff, sizeof(uint32_t)); - TEST_CHECK(fr_dbuff_net_encode(&dbuff, u64val) == -(ssize_t)(sizeof(uint64_t) - sizeof(uint32_t))); + TEST_CHECK(fr_dbuff_in(&dbuff, u64val) == -(ssize_t)(sizeof(uint64_t) - sizeof(uint32_t))); } @@ -209,7 +209,7 @@ TEST_LIST = { */ { "fr_dbuff_init", test_dbuff_init }, { "fr_dbuff_init_no_parent", test_dbuff_init_no_parent }, - { "fr_dbuff_net_encode", test_dbuff_net_encode }, + { "fr_dbuff_in", test_dbuff_net_encode }, { NULL } }; diff --git a/src/lib/util/net.h b/src/lib/util/net.h index deca823f28d..72c0bf1763e 100644 --- a/src/lib/util/net.h +++ b/src/lib/util/net.h @@ -188,6 +188,39 @@ static inline void fr_net_from_uint64(uint8_t out[static sizeof(uint64_t)], uint fr_net_from_uint32(out + sizeof(uint32_t), (uint32_t)num); } +/** Write out an signed 16bit integer in wire format (big endian) + * + * @param[out] out Where to write the integer. + * @param[in] num to encode. + */ +static inline void fr_net_from_int16(uint8_t out[static sizeof(int16_t)], int16_t num) +{ + out[0] = (num >> 8) & 0xff; + out[1] = num & 0xff; +} + +/** Write out an signed 32bit integer in wire format (big endian) + * + * @param[out] out Where to write the integer. + * @param[in] num to encode. + */ +static inline void fr_net_from_int32(uint8_t out[static sizeof(int32_t)], int32_t num) +{ + fr_net_from_uint16(out, (int16_t) (num >> 16)); + fr_net_from_uint16(out + sizeof(int16_t), (int16_t) num); +} + +/** Write out an signed 64bit integer in wire format (big endian) + * + * @param[out] out Where to write the integer. + * @param[in] num to encode. + */ +static inline void fr_net_from_int64(uint8_t out[static sizeof(uint64_t)], uint64_t num) +{ + fr_net_from_uint32(out, (int32_t)(num >> 32)); + fr_net_from_uint32(out + sizeof(int32_t), (int32_t)num); +} + /** Write out an unsigned 64bit integer in wire format using the fewest bytes possible * * @param[out] out Where to write big endian encoding of num. @@ -198,15 +231,8 @@ static inline void fr_net_from_uint64(uint8_t out[static sizeof(uint64_t)], uint static inline size_t fr_net_from_uint64v(uint8_t out[static sizeof(uint64_t)], uint64_t num) { size_t ret; - /* - * Special case for zero. - */ - if (num == 0) { - out[0] = 0; - return 1; - } - ret = ROUND_UP_DIV((size_t)fr_high_bit_pos(num), 8); + ret = ROUND_UP_DIV((size_t)fr_high_bit_pos(num | 0x80), 8); num = ntohll(num); memcpy(out, ((uint8_t *)&num) + (sizeof(uint64_t) - ret), ret); /* aligned */ @@ -243,6 +269,36 @@ static inline uint64_t fr_net_to_uint64(uint8_t const data[static sizeof(uint64_ return ((uint64_t)fr_net_to_uint32(data) << 32) | fr_net_to_uint32(data + sizeof(uint32_t)); } +/** Read an signed 16bit integer from wire format (big endian) + * + * @param[in] data To convert to a 16bit signed integer of native endianness. + * @return a 16 bit signed integer of native endianness. + */ +static inline int16_t fr_net_to_int16(int8_t const data[static sizeof(int16_t)]) +{ + return (((int16_t)data[0]) << 8) | data[1]; +} + +/** Read an signed 32bit integer from wire format (big endian) + * + * @param[in] data To convert to a 32bit signed integer of native endianness. + * @return a 32 bit signed integer of native endianness. + */ +static inline int32_t fr_net_to_int32(int8_t const data[static sizeof(int32_t)]) +{ + return ((int32_t)fr_net_to_int16(data) << 16) | fr_net_to_int16(data + sizeof(int16_t)); +} + +/** Read an signed 64bit integer from wire format (big endian) + * + * @param[in] data To convert to a 64bit signed integer of native endianness. + * @return a 64 bit signed integer of native endianness. + */ +static inline int64_t fr_net_to_int64(int8_t const data[static sizeof(int64_t)]) +{ + return ((int64_t)fr_net_to_int32(data) << 32) | fr_net_to_int32(data + sizeof(int32_t)); +} + /** Read an unsigned 64bit integer from wire format (big endian) with a variable length encoding * * @param[in] data Buffer containing the number. diff --git a/src/lib/util/value.c b/src/lib/util/value.c index 8a7a702c4bc..76164e25ea5 100644 --- a/src/lib/util/value.c +++ b/src/lib/util/value.c @@ -1207,17 +1207,17 @@ ssize_t fr_value_box_to_network_dbuff(size_t *need, fr_dbuff_t *dbuff, fr_value_ } else switch (value->enumv->flags.length) { case 2: if (date > UINT16_MAX) date = UINT16_MAX; - fr_dbuff_net_encode(dbuff, (int16_t) date); + fr_dbuff_in(dbuff, (int16_t) date); break; date_size4: case 4: if (date > UINT32_MAX) date = UINT32_MAX; - fr_dbuff_net_encode(dbuff, (int32_t) date); + fr_dbuff_in(dbuff, (int32_t) date); break; case 8: - fr_dbuff_net_encode(dbuff, date); + fr_dbuff_in(dbuff, date); break; default: @@ -1266,7 +1266,7 @@ ssize_t fr_value_box_to_network_dbuff(size_t *need, fr_dbuff_t *dbuff, fr_value_ } else if (date > INT16_MAX) { date = INT16_MAX; } - fr_dbuff_net_encode(dbuff, (int16_t)date); + fr_dbuff_in(dbuff, (int16_t)date); break; delta_size4: @@ -1276,11 +1276,11 @@ ssize_t fr_value_box_to_network_dbuff(size_t *need, fr_dbuff_t *dbuff, fr_value_ } else if (date > INT32_MAX) { date = INT32_MAX; } - fr_dbuff_net_encode(dbuff, (int32_t)date); + fr_dbuff_in(dbuff, (int32_t)date); break; case 8: - fr_dbuff_net_encode(dbuff, (int64_t)date); + fr_dbuff_in(dbuff, (int64_t)date); break; default: diff --git a/src/protocols/internal/encode.c b/src/protocols/internal/encode.c index 51a3b49c049..401911f085b 100644 --- a/src/protocols/internal/encode.c +++ b/src/protocols/internal/encode.c @@ -110,7 +110,7 @@ static ssize_t internal_encode(fr_dbuff_t *dbuff, * Encode the type and write the width of the * integer to the encoding byte. */ - flen = fr_dbuff_net_encode_uint64v(dbuff, da->attr); + flen = fr_dbuff_uint64v_in(dbuff, da->attr); enc_field[0] |= ((flen - 1) << 5); /*