aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-10-13 14:59:17 -0400
committerNick Mathewson <nickm@torproject.org>2014-10-13 14:59:17 -0400
commit21fe945ebd7183685bf5bbcd80bf6b1b946eb841 (patch)
tree0555b8b10ba62b7329e17e3431618058b8d5b9a6
parentd950e243328eaac40515b4b16ac328f6748c7a3f (diff)
downloadtor-21fe945ebd7183685bf5bbcd80bf6b1b946eb841.tar.gz
tor-21fe945ebd7183685bf5bbcd80bf6b1b946eb841.zip
Define a strnlen replacement on platforms (win32) that lack it
Right now this is only needed for test_util_format_time_interval, so define it as a static function. We can move it into compat later if we need to.
-rw-r--r--configure.ac1
-rw-r--r--src/test/test_util.c11
2 files changed, 12 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index c0523e1082..4c7da5d76a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -365,6 +365,7 @@ AC_CHECK_FUNCS(
socketpair \
strlcat \
strlcpy \
+ strnlen \
strptime \
strtok_r \
strtoull \
diff --git a/src/test/test_util.c b/src/test/test_util.c
index 8855cafc12..eb169f4dd5 100644
--- a/src/test/test_util.c
+++ b/src/test/test_util.c
@@ -2072,6 +2072,17 @@ test_util_sscanf(void *arg)
#define tt_char_op(a,op,b) tt_assert_op_type(a,op,b,char,"%c")
#define tt_ci_char_op(a,op,b) tt_char_op(tolower(a),op,tolower(b))
+#ifndef HAVE_STRNLEN
+static size_t
+strnlen(const char *s, size_t len)
+{
+ const char *p = memchr(s, 0, len);
+ if (!p)
+ return len;
+ return p - s;
+}
+#endif
+
static void
test_util_format_time_interval(void *arg)
{