From: Mike Gelfand Date: Sun, 13 Dec 2015 10:23:22 +0000 (+0000) Subject: Optionally return result length from `evbuffer_free_to_str()` X-Git-Tag: 2.90~73 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ceb19b9711329e2e9ff34aa8532e63e5d850145c;p=transmission Optionally return result length from `evbuffer_free_to_str()` --- diff --git a/libtransmission/announcer-http.c b/libtransmission/announcer-http.c index b436bd415..95811d63e 100644 --- a/libtransmission/announcer-http.c +++ b/libtransmission/announcer-http.c @@ -117,7 +117,7 @@ announce_url_new (const tr_session * session, const tr_announce_request * req) tr_http_escape (buf, ipv6_readable, -1, true); } - return evbuffer_free_to_str (buf); + return evbuffer_free_to_str (buf, NULL); } static tr_pex* @@ -447,7 +447,7 @@ scrape_url_new (const tr_scrape_request * req) delimiter = '&'; } - return evbuffer_free_to_str (buf); + return evbuffer_free_to_str (buf, NULL); } void diff --git a/libtransmission/announcer.c b/libtransmission/announcer.c index f5b79a753..4af98096b 100644 --- a/libtransmission/announcer.c +++ b/libtransmission/announcer.c @@ -767,7 +767,7 @@ dbgmsg_tier_announce_queue (const tr_tier * tier) evbuffer_add_printf (buf, "[%d:%s]", i, str); } - message = evbuffer_free_to_str (buf); + message = evbuffer_free_to_str (buf, NULL); tr_logAddDeep (__FILE__, __LINE__, name, "announce queue is %s", message); tr_free (message); } diff --git a/libtransmission/log.c b/libtransmission/log.c index 05802ab4f..bcff8bd23 100644 --- a/libtransmission/log.c +++ b/libtransmission/log.c @@ -194,7 +194,7 @@ tr_logAddDeep (const char * file, va_end (args); evbuffer_add_printf (buf, " (%s:%d)", base, line); /* FIXME (libevent2) ifdef this out for nonwindows platforms */ - message = evbuffer_free_to_str (buf); + message = evbuffer_free_to_str (buf, NULL); OutputDebugStringA (message); OutputDebugStringA (TR_NATIVE_EOL_STR); if (fp != TR_BAD_SYS_FILE) diff --git a/libtransmission/peer-msgs.c b/libtransmission/peer-msgs.c index 0b95e3f6b..3210e4800 100644 --- a/libtransmission/peer-msgs.c +++ b/libtransmission/peer-msgs.c @@ -301,7 +301,7 @@ myDebug (const char * file, int line, va_end (args); evbuffer_add_printf (buf, " (%s:%d)", base, line); - message = evbuffer_free_to_str (buf); + message = evbuffer_free_to_str (buf, NULL); tr_sys_file_write_line (fp, message, NULL); tr_free (base); diff --git a/libtransmission/torrent-magnet.c b/libtransmission/torrent-magnet.c index a2d0619c3..486e2695e 100644 --- a/libtransmission/torrent-magnet.c +++ b/libtransmission/torrent-magnet.c @@ -406,5 +406,5 @@ tr_torrentInfoGetMagnetLink (const tr_info * inf) tr_http_escape (s, inf->webseeds[i], -1, true); } - return evbuffer_free_to_str (s); + return evbuffer_free_to_str (s, NULL); } diff --git a/libtransmission/utils.c b/libtransmission/utils.c index d31b72a70..099a551a5 100644 --- a/libtransmission/utils.c +++ b/libtransmission/utils.c @@ -349,13 +349,16 @@ tr_getDirFreeSpace (const char * dir) ****/ char* -evbuffer_free_to_str (struct evbuffer * buf) +evbuffer_free_to_str (struct evbuffer * buf, + size_t * result_len) { const size_t n = evbuffer_get_length (buf); char * ret = tr_new (char, n + 1); evbuffer_copyout (buf, ret, n); evbuffer_free (buf); ret[n] = '\0'; + if (result_len != NULL) + *result_len = n; return ret; } @@ -426,7 +429,7 @@ tr_strdup_vprintf (const char * fmt, { struct evbuffer * buf = evbuffer_new (); evbuffer_add_vprintf (buf, fmt, args); - return evbuffer_free_to_str (buf); + return evbuffer_free_to_str (buf, NULL); } const char* @@ -983,7 +986,6 @@ static char* strip_non_utf8 (const char * in, size_t inlen) { const char * end; - const char zero = '\0'; struct evbuffer * buf = evbuffer_new (); while (!tr_utf8_validate (in, inlen, &end)) @@ -997,8 +999,7 @@ strip_non_utf8 (const char * in, size_t inlen) } evbuffer_add (buf, in, inlen); - evbuffer_add (buf, &zero, 1); - return evbuffer_free_to_str (buf); + return evbuffer_free_to_str (buf, NULL); } static char* diff --git a/libtransmission/utils.h b/libtransmission/utils.h index b0ec07f08..8213b5b85 100644 --- a/libtransmission/utils.h +++ b/libtransmission/utils.h @@ -297,7 +297,8 @@ char* tr_strdup (const void * in); */ int tr_strcmp0 (const char * str1, const char * str2); -char* evbuffer_free_to_str (struct evbuffer * buf); +char* evbuffer_free_to_str (struct evbuffer * buf, + size_t * result_len); /** @brief similar to bsearch () but returns the index of the lower bound */ int tr_lowerBound (const void * key, diff --git a/libtransmission/variant.c b/libtransmission/variant.c index 2cc20bc9f..d5b85f0d9 100644 --- a/libtransmission/variant.c +++ b/libtransmission/variant.c @@ -1202,8 +1202,8 @@ char* tr_variantToStr (const tr_variant * v, tr_variant_fmt fmt, int * len) { struct evbuffer * buf = tr_variantToBuf (v, fmt); - const size_t n = evbuffer_get_length (buf); - char * ret = evbuffer_free_to_str (buf); + size_t n; + char * ret = evbuffer_free_to_str (buf, &n); if (len != NULL) *len = (int) n; return ret; diff --git a/libtransmission/webseed.c b/libtransmission/webseed.c index 9d6588f97..e813ec769 100644 --- a/libtransmission/webseed.c +++ b/libtransmission/webseed.c @@ -494,7 +494,7 @@ task_request_next_chunk (struct tr_webseed_task * t) this_pass = MIN (remain, file->length - file_offset); if (!urls[file_index]) - urls[file_index] = evbuffer_free_to_str (make_url (t->webseed, file)); + urls[file_index] = evbuffer_free_to_str (make_url (t->webseed, file), NULL); tr_snprintf (range, sizeof range, "%"PRIu64"-%"PRIu64, file_offset, file_offset + this_pass - 1); diff --git a/utils/edit.c b/utils/edit.c index d7e7a70e6..6c2b186ef 100644 --- a/utils/edit.c +++ b/utils/edit.c @@ -177,7 +177,7 @@ replaceSubstr (const char * str, const char * in, const char * out) evbuffer_add (buf, str, strlen (str)); - return evbuffer_free_to_str (buf); + return evbuffer_free_to_str (buf, NULL); } static bool