Fix gethostbyaddr() prototype to conform to IEEE Std 1003.1 on 64 bit

arch.

X-MFC after:	never
This commit is contained in:
Hajimu UMEMOTO 2006-05-21 11:27:28 +00:00
parent 734aa10414
commit 1bdf356bd3
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=158791
2 changed files with 22 additions and 32 deletions

View File

@ -63,7 +63,6 @@
#include <sys/cdefs.h>
#include <sys/_types.h>
#include <machine/_limits.h>
#ifndef _SIZE_T_DECLARED
typedef __size_t size_t;
@ -222,15 +221,9 @@ void endnetgrent(void);
void endprotoent(void);
void endservent(void);
void freehostent(struct hostent *);
#if __LONG_BIT == 64
struct hostent *gethostbyaddr(const void *, int, int);
int gethostbyaddr_r(const void *, int, int, struct hostent *,
char *, size_t, struct hostent **, int *);
#else
struct hostent *gethostbyaddr(const void *, socklen_t, int);
int gethostbyaddr_r(const void *, socklen_t, int, struct hostent *,
char *, size_t, struct hostent **, int *);
#endif
struct hostent *gethostbyname(const char *);
int gethostbyname_r(const char *, struct hostent *, char *, size_t,
struct hostent **, int *);

View File

@ -169,7 +169,9 @@ host_id_func(char *buffer, size_t *buffer_size, va_list ap, void *cache_mdata)
const int op_id = 1;
char *str;
int len, type;
void *addr;
socklen_t len;
int type;
size_t desired_size, size;
enum nss_lookup_type lookup_type;
@ -214,12 +216,13 @@ host_id_func(char *buffer, size_t *buffer_size, va_list ap, void *cache_mdata)
res = NS_SUCCESS;
break;
case nss_lt_id:
str = va_arg(ap, char *);
len = va_arg(ap, int);
addr = va_arg(ap, void *);
len = va_arg(ap, socklen_t);
type = va_arg(ap, int);
desired_size = sizeof(res_options) + sizeof(int) +
sizeof(enum nss_lookup_type) + sizeof(int) * 2 + len;
sizeof(enum nss_lookup_type) + sizeof(int) +
sizeof(socklen_t) + len;
if (desired_size > *buffer_size) {
res = NS_RETURN;
@ -239,10 +242,10 @@ host_id_func(char *buffer, size_t *buffer_size, va_list ap, void *cache_mdata)
memcpy(p, &type, sizeof(int));
p += sizeof(int);
memcpy(p, &len, sizeof(int));
p += sizeof(int);
memcpy(p, &len, sizeof(socklen_t));
p += sizeof(socklen_t);
memcpy(p, str, len);
memcpy(p, addr, len);
res = NS_SUCCESS;
break;
@ -261,7 +264,9 @@ host_marshal_func(char *buffer, size_t *buffer_size, void *retval, va_list ap,
void *cache_mdata)
{
char *str;
int len, type;
void *addr;
socklen_t len;
int type;
struct hostent *ht;
struct hostent new_ht;
@ -274,8 +279,8 @@ host_marshal_func(char *buffer, size_t *buffer_size, void *retval, va_list ap,
type = va_arg(ap, int);
break;
case nss_lt_id:
str = va_arg(ap, char *);
len = va_arg(ap, int);
addr = va_arg(ap, void *);
len = va_arg(ap, socklen_t);
type = va_arg(ap, int);
break;
default:
@ -365,7 +370,9 @@ host_unmarshal_func(char *buffer, size_t buffer_size, void *retval, va_list ap,
void *cache_mdata)
{
char *str;
int len, type;
void *addr;
socklen_t len;
int type;
struct hostent *ht;
char *p;
@ -379,8 +386,8 @@ host_unmarshal_func(char *buffer, size_t buffer_size, void *retval, va_list ap,
type = va_arg(ap, int);
break;
case nss_lt_id:
str = va_arg(ap, char *);
len = va_arg(ap, int);
addr = va_arg(ap, void *);
len = va_arg(ap, socklen_t);
type = va_arg(ap, int);
break;
default:
@ -573,14 +580,8 @@ gethostbyname_internal(const char *name, int af, struct hostent *hp, char *buf,
}
int
gethostbyaddr_r(const void *addr,
#if __LONG_BIT == 64
int len,
#else
socklen_t len,
#endif
int af, struct hostent *hp, char *buf, size_t buflen,
struct hostent **result, int *h_errnop)
gethostbyaddr_r(const void *addr, socklen_t len, int af, struct hostent *hp,
char *buf, size_t buflen, struct hostent **result, int *h_errnop)
{
const u_char *uaddr = (const u_char *)addr;
const struct in6_addr *addr6;
@ -684,11 +685,7 @@ gethostbyname2(const char *name, int af)
}
struct hostent *
#if __LONG_BIT == 64
gethostbyaddr(const void *addr, int len, int af)
#else
gethostbyaddr(const void *addr, socklen_t len, int af)
#endif
{
struct hostdata *hd;
struct hostent *rval;