From: Alan T. DeKok Date: Thu, 1 Nov 2012 08:23:55 +0000 (+0100) Subject: Added rad_data2vp() to mirror rad_vp2data() X-Git-Tag: release_3_0_0_beta1~1620 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9dd2d9e7d9f2756da9dda5b38e07841d19662e26;p=thirdparty%2Ffreeradius-server.git Added rad_data2vp() to mirror rad_vp2data() --- diff --git a/src/include/libradius.h b/src/include/libradius.h index f536003e351..ab2856f684c 100644 --- a/src/include/libradius.h +++ b/src/include/libradius.h @@ -392,6 +392,10 @@ ssize_t rad_attr2vp(const RADIUS_PACKET *packet, const RADIUS_PACKET *original, const uint8_t *data, size_t length, VALUE_PAIR **pvp); +ssize_t rad_data2vp(unsigned int attribute, unsigned int vendor, + const uint8_t *data, size_t length, + VALUE_PAIR **pvp); + ssize_t rad_vp2data(const VALUE_PAIR *vp, uint8_t *out, size_t outlen); int rad_vp2extended(const RADIUS_PACKET *packet, diff --git a/src/lib/radius.c b/src/lib/radius.c index 7a39cdd7bd1..0e2b31654b3 100644 --- a/src/lib/radius.c +++ b/src/lib/radius.c @@ -3846,6 +3846,22 @@ ssize_t rad_attr2vp(const RADIUS_PACKET *packet, return rad_attr2vp_rfc(packet, original, secret, data, length, pvp); } + +/** + * @brief Converts data in network byte order to a VP + * @return -1 on error, or the length of the data read + */ +ssize_t rad_data2vp(unsigned int attribute, unsigned int vendor, + const uint8_t *data, size_t length, + VALUE_PAIR **pvp) +{ + if (!data || (length == 0) || !pvp) return -1; + + return data2vp_any(NULL, NULL, NULL, 0, + attribute, vendor, data, length, pvp); +} + + /** * @brief Converts vp_data to network byte order * @return -1 on error, or the length of the value