diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ChangeLog | 7 | ||||
-rw-r--r-- | lib/str.c | 11 | ||||
-rw-r--r-- | lib/str.h | 6 | ||||
-rw-r--r-- | lib/zebra.h | 1 |
4 files changed, 22 insertions, 3 deletions
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 <ajschorr@alumni.princeton.edu> + + * 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 <ajschorr@alumni.princeton.edu> * zebra.h: Must check whether __attribute__ should be defined before @@ -8,8 +8,6 @@ #include <zebra.h> -#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 @@ -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 |