From: Alan T. DeKok Date: Thu, 27 Jan 2011 14:33:17 +0000 (+0100) Subject: make fr_print_string return the string length X-Git-Tag: release_2_1_11~139 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=108fcefa5a18d1512a354f49db108a38c67b06ab;p=thirdparty%2Ffreeradius-server.git make fr_print_string return the string length --- diff --git a/src/include/libradius.h b/src/include/libradius.h index 7a14ea40835..780433550cd 100644 --- a/src/include/libradius.h +++ b/src/include/libradius.h @@ -240,7 +240,7 @@ typedef struct radius_packet { * Printing functions. */ int fr_utf8_char(const uint8_t *str); -void fr_print_string(const char *in, size_t inlen, +size_t fr_print_string(const char *in, size_t inlen, char *out, size_t outlen); int vp_prints_value(char *out, size_t outlen, VALUE_PAIR *vp, int delimitst); diff --git a/src/lib/print.c b/src/lib/print.c index e122a7442e2..7ea155f9f8d 100644 --- a/src/lib/print.c +++ b/src/lib/print.c @@ -127,8 +127,9 @@ int fr_utf8_char(const uint8_t *str) * has to be larger than the input string by at least 5 bytes. * If not, the output is silently truncated... */ -void fr_print_string(const char *in, size_t inlen, char *out, size_t outlen) +size_t fr_print_string(const char *in, size_t inlen, char *out, size_t outlen) { + const char *start = out; const uint8_t *str = (const uint8_t *) in; int sp = 0; int utf8 = 0; @@ -193,6 +194,8 @@ void fr_print_string(const char *in, size_t inlen, char *out, size_t outlen) } while (--utf8 > 0); } *out = 0; + + return out - start; }