From 3cb98dee9067372756964f461eb2c931a1c75138 Mon Sep 17 00:00:00 2001 From: ajs Date: Sat, 2 Apr 2005 16:01:05 +0000 Subject: 2005-04-02 Andrew J. Schorr * configure.ac: Add strnlen to AC_CHECK_FUNCS. * zebra.h: Should include str.h to pick up missing functions. * str.h: Declare strnlen if needed. * str.c: Do not include str.h since zebra.h now includes it. (strnlen) New function. --- lib/ChangeLog | 7 +++++++ lib/str.c | 11 +++++++++-- lib/str.h | 6 +++++- lib/zebra.h | 1 + 4 files changed, 22 insertions(+), 3 deletions(-) (limited to 'lib') diff --git a/lib/ChangeLog b/lib/ChangeLog index 736e3ae5..567f603a 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,10 @@ +2005-04-02 Andrew J. Schorr + + * zebra.h: Should include str.h to pick up missing functions. + * str.h: Declare strnlen if needed. + * str.c: Do not include str.h since zebra.h now includes it. + (strnlen) New function. + 2005-03-16 Andrew J. Schorr * zebra.h: Must check whether __attribute__ should be defined before diff --git a/lib/str.c b/lib/str.c index 797e9b87..18a5d8ed 100644 --- a/lib/str.c +++ b/lib/str.c @@ -8,8 +8,6 @@ #include -#include "str.h" - #ifndef HAVE_SNPRINTF /* * snprint() is a real basic wrapper around the standard sprintf() @@ -60,3 +58,12 @@ strlcat(char *dst, const char *src, size_t size) return (strlen(dst)); } #endif + +#ifndef HAVE_STRNLEN +size_t +strnlen(const char *s, size_t maxlen) +{ + const char *p; + return (p = (const char *)memchr(s, '\0', maxlen)) ? (size_t)(p-s) : maxlen; +} +#endif diff --git a/lib/str.h b/lib/str.h index 4098896a..c0016565 100644 --- a/lib/str.h +++ b/lib/str.h @@ -1,5 +1,5 @@ /* - * $Id: str.h,v 1.1 2002/12/13 20:15:29 paul Exp $ + * $Id: str.h,v 1.2 2005/04/02 16:01:05 ajs Exp $ */ #ifndef _ZEBRA_STR_H @@ -21,4 +21,8 @@ size_t strlcpy(char *, const char *, size_t); size_t strlcat(char *, const char *, size_t); #endif +#ifndef HAVE_STRNLEN +extern size_t strnlen(const char *s, size_t maxlen); +#endif + #endif diff --git a/lib/zebra.h b/lib/zebra.h index d9c28b01..7d907ed7 100644 --- a/lib/zebra.h +++ b/lib/zebra.h @@ -228,6 +228,7 @@ typedef int socklen_t; #endif /* !__GNUC__ || VTYSH_EXTRACT_PL */ #include "zassert.h" +#include "str.h" #ifdef HAVE_BROKEN_CMSG_FIRSTHDR -- cgit v1.2.1