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. --- ChangeLog | 4 ++++ configure.ac | 4 ++-- lib/ChangeLog | 7 +++++++ lib/str.c | 11 +++++++++-- lib/str.h | 6 +++++- lib/zebra.h | 1 + 6 files changed, 28 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index d418bfc3..f822d4fe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2005-04-02 Andrew J. Schorr + + * configure.ac: Add strnlen to AC_CHECK_FUNCS. + 2005-03-28 Hasso Tepper * configure.ac, */Makefile.am: Fix previous commit. SNMP includes diff --git a/configure.ac b/configure.ac index 508ba7d3..ccb02a08 100755 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ ## Copyright (c) 1996, 97, 98, 99, 2000 Kunihiro Ishiguro ## Portions Copyright (c) 2003 Paul Jakma ## -## $Id: configure.ac,v 1.94 2005/03/28 15:29:07 hasso Exp $ +## $Id: configure.ac,v 1.95 2005/04/02 16:01:05 ajs Exp $ AC_PREREQ(2.53) AC_INIT(Quagga, 0.99.0, [http://bugzilla.quagga.net]) @@ -454,7 +454,7 @@ dnl check existance of functions dnl ---------------------------- AC_CHECK_FUNCS(memset memcpy strerror inet_aton daemon snprintf vsnprintf \ strlcat strlcpy if_nametoindex if_indextoname getifaddrs \ - fcntl) + fcntl strnlen) AC_CHECK_FUNCS(setproctitle, , [AC_CHECK_LIB(util, setproctitle, [LIBS="$LIBS -lutil" 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