Mercurial > hg > octave-nkf > gnulib-hg
changeset 7543:8c6aad2a3515
* lib/getaddrinfo.c (getnameinfo): Use new lightweight uinttostr,
in place of snprintf.
* modules/inttostr (Files): Add lib/uinttostr.c.
* lib/uinttostr.c (inttostr): New file/function.
* lib/inttostr.h (uinttostr): Declare.
* m4/inttostr.m4: Add AC_LIBOBJ([uinttostr]).
* MODULES.html.sh (Numeric conversion functions <stdlib.h>):
Add uinttostr.
* modules/getaddrinfo (Depends-on): Remove snprintf. Add inttostr.
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Mon, 23 Oct 2006 06:03:01 +0000 |
parents | 998cb998efab |
children | ee3b2c9f1a76 |
files | ChangeLog MODULES.html.sh lib/getaddrinfo.c lib/inttostr.h lib/uinttostr.c m4/inttostr.m4 modules/getaddrinfo modules/inttostr |
diffstat | 8 files changed, 37 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2006-10-23 Jim Meyering <jim@meyering.net> + + * lib/getaddrinfo.c (getnameinfo): Use new lightweight uinttostr, + in place of snprintf. + + * modules/inttostr (Files): Add lib/uinttostr.c. + * lib/uinttostr.c (inttostr): New file/function. + * lib/inttostr.h (uinttostr): Declare. + * m4/inttostr.m4: Add AC_LIBOBJ([uinttostr]). + * MODULES.html.sh (Numeric conversion functions <stdlib.h>): + Add uinttostr. + * modules/getaddrinfo (Depends-on): Remove snprintf. Add inttostr. + 2006-10-21 Paul Eggert <eggert@cs.ucla.edu> * lib/canonicalize.c (ELOOP): Define if not already defined.
--- a/MODULES.html.sh +++ b/MODULES.html.sh @@ -1802,6 +1802,7 @@ func_begin_table func_module intprops func_module inttostr + func_module uinttostr func_module xstrtoimax func_module xstrtoumax func_end_table
--- a/lib/getaddrinfo.c +++ b/lib/getaddrinfo.c @@ -39,7 +39,7 @@ #define N_(String) String #include "inet_ntop.h" -#include "snprintf.h" +#include "intprops.h" #include "strdup.h" /* BeOS has AF_INET, but not PF_INET. */ @@ -405,10 +405,15 @@ #if HAVE_IPV6 case AF_INET6: #endif - if (snprintf (service, servicelen, "%d", - ntohs (((const struct sockaddr_in *) sa)->sin_port)) - + 1 > servicelen) - return EAI_OVERFLOW; + { + unsigned short int port + = ntohs (((const struct sockaddr_in *) sa)->sin_port); + char buf[INT_BUFSIZE_BOUND (port)]; + char const *s = uinttostr (port, buf); + if (strlen (s) + 1 > servicelen) + return EAI_OVERFLOW; + memcpy (service, s, strlen (s) + 1); + } break; }
--- a/lib/inttostr.h +++ b/lib/inttostr.h @@ -27,3 +27,4 @@ char *offtostr (off_t, char *); char *imaxtostr (intmax_t, char *); char *umaxtostr (uintmax_t, char *); +char *uinttostr (unsigned int, char *);
new file mode 100644 --- /dev/null +++ b/lib/uinttostr.c @@ -0,0 +1,3 @@ +#define inttostr uinttostr +#define inttype unsigned int +#include "inttostr.c"
--- a/m4/inttostr.m4 +++ b/m4/inttostr.m4 @@ -1,4 +1,4 @@ -#serial 6 +#serial 7 dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -9,11 +9,13 @@ AC_LIBOBJ([imaxtostr]) AC_LIBOBJ([offtostr]) AC_LIBOBJ([umaxtostr]) + AC_LIBOBJ([uinttostr]) gl_PREREQ_INTTOSTR gl_PREREQ_IMAXTOSTR gl_PREREQ_OFFTOSTR gl_PREREQ_UMAXTOSTR + gl_PREREQ_UINTTOSTR ]) # Prerequisites of lib/inttostr.h. @@ -30,3 +32,6 @@ # Prerequisites of lib/umaxtostr.c. AC_DEFUN([gl_PREREQ_UMAXTOSTR], [:]) + +# Prerequisites of lib/uinttostr.c. +AC_DEFUN([gl_PREREQ_UINTTOSTR], [:])