+2000-12-18 Andreas Jaeger <aj@suse.de>
+
+ * test-skeleton.c: Use temp_name_list instead of temp_name_list to
+ avoid collision with name_list from inet/netgroup.h.
+
+ * nss/nss_files/files-network.c (NEED_H_ERRNO): Define.
+
+ * include/grp.h (DECLARE_NSS_PROTOTYPES): New.
+ * include/pwd.h (DECLARE_NSS_PROTOTYPES): New.
+ * include/netdb.h (DECLARE_NSS_PROTOTYPES): New.
+ * include/shadow.h (DECLARE_NSS_PROTOTYPES): New.
+
+ * hesiod/nss_hesiod/hesiod-proto.c (_nss_hesiod_setprotoent): Fix
+ declaration to match prototype.
+ * hesiod/nss_hesiod/hesiod-pwd.c (_nss_hesiod_setpwent): Likewise.
+ * hesiod/nss_hesiod/hesiod-grp.c (_nss_hesiod_setgrent): Likewise.
+ * hesiod/nss_hesiod/hesiod-service.c (_nss_hesiod_setservent):
+ Likewise.
+ * nis/nss_nis/nis-grp.c (_nss_nis_setgrent): Likewise.
+ * nis/nss_nis/nis-pwd.c (_nss_nis_setpwent): Likewise.
+ * nis/nss_nis/nis-proto.c (_nss_nis_setprotoent): Likewise.
+ * nis/nss_nis/nis-service.c (_nss_nis_setservent): Likewise.
+ (_nss_nis_getservbyport_r): Likewise.
+ * nis/nss_nis/nis-hosts.c (_nss_nis_sethostent): Likewise.
+ * nis/nss_nis/nis-spwd.c (_nss_nis_setspent): Likewise.
+ * nis/nss_nis/nis-network.c (_nss_nis_getnetent_r): Likewise.
+ (_nss_nis_setnetent): Likewise
+ * nis/nss_nis/nis-netgrp.c (_nss_nis_setnetgrent): Likewise.
+ (_nss_nis_endnetgrent): Likewise.
+ * nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_endnetgrent):
+ Likewise.
+ (_nss_nisplus_setnetgrent): Likewise.
+ * nis/nss_nisplus/nisplus-spwd.c (_nss_nisplus_setspent): Likewise.
+ * nis/nss_nisplus/nisplus-pwd.c (_nss_nisplus_setpwent): Likewise.
+ * nis/nss_nisplus/nisplus-grp.c (_nss_nisplus_setgrent): Likewise.
+ * nis/nss_nisplus/nisplus-network.c (_nss_nisplus_setnetent):
+ Likewise.
+ * nis/nss_nisplus/nisplus-hosts.c (_nss_nisplus_sethostent):
+ Likewise.
+ * nis/nss_nisplus/nisplus-service.c (_nss_nisplus_setservent):
+ Likewise.
+ * nis/nss_nisplus/nisplus-proto.c (_nss_nisplus_setprotoent):
+ Likewise.
+ * nis/nss_compat/compat-spwd.c (_nss_compat_setspent): Likewise.
+ * nis/nss_compat/compat-pwd.c (_nss_compat_setpwent): Likewise.
+ * nis/nss_compat/compat-grp.c (_nss_compat_setgrent): Likewise.
+ * resolv/nss_dns/dns-host.c (_nss_dns_gethostbyaddr_r): Likewise.
+ * resolv/nss_dns/dns-network.c (_nss_dns_getnetbyname_r): Likewise.
+ (_nss_dns_getnetbyaddr_r): Likewise.
+
2000-12-17 Andreas Jaeger <aj@suse.de>
* sysdeps/generic/k_sinl.c (__kernel_sinl): Fix functions
#include <nss/nss_files/files-parse.c>
enum nss_status
-_nss_hesiod_setgrent (void)
+_nss_hesiod_setgrent (int stayopen)
{
return NSS_STATUS_SUCCESS;
}
)
enum nss_status
-_nss_hesiod_setprotoent (void)
+_nss_hesiod_setprotoent (int stayopen)
{
return NSS_STATUS_SUCCESS;
}
#include <nss/nss_files/files-parse.c>
enum nss_status
-_nss_hesiod_setpwent (void)
+_nss_hesiod_setpwent (int stayopen)
{
return NSS_STATUS_SUCCESS;
}
)
enum nss_status
-_nss_hesiod_setservent (void)
+_nss_hesiod_setservent (int stayopen)
{
return NSS_STATUS_SUCCESS;
}
extern int __getgrnam_r (__const char *__name, struct group *__resultbuf,
char *__buffer, size_t __buflen,
struct group **__result);
+
+#define DECLARE_NSS_PROTOTYPES(service) \
+extern enum nss_status _nss_ ## service ## _setgrent (int); \
+extern enum nss_status _nss_ ## service ## _endgrent (void); \
+extern enum nss_status _nss_ ## service ## _getgrgid_r \
+ (gid_t gid, struct group *grp, char *buffer, \
+ size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ## _getgrnam_r \
+ (const char *name, struct group *grp, \
+ char *buffer, size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ##_getgrent_r \
+ (struct group *result, char *buffer, size_t buflen, \
+ int *errnop); \
+extern enum nss_status _nss_ ## service ##_initgroups_dyn \
+ (const char *user, gid_t group, long int *start, \
+ long int *size, gid_t **groupsp, long int limit, \
+ int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
#endif
/* The following declarations and definitions have been removed from
the public header since we don't want people to use them. */
-#define AI_V4MAPPED 0x0008 /* IPv4-mapped addresses are acceptable. */
-#define AI_ALL 0x0010 /* Return both IPv4 and IPv6 addresses. */
-#define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose
- returned address type. */
+#define AI_V4MAPPED 0x0008 /* IPv4-mapped addresses are acceptable. */
+#define AI_ALL 0x0010 /* Return both IPv4 and IPv6 addresses. */
+#define AI_ADDRCONFIG 0x0020 /* Use configuration of this host to choose
+ returned address type. */
#define AI_DEFAULT (AI_V4MAPPED | AI_ADDRCONFIG)
+#include <inet/netgroup.h>
+
+#define DECLARE_NSS_PROTOTYPES(service) \
+extern enum nss_status _nss_ ## service ## _setprotoent (int); \
+extern enum nss_status _nss_ ## service ## _endprotoent (void); \
+extern enum nss_status _nss_ ## service ## _getprotoent_r \
+ (struct protoent *proto, char *buffer, size_t buflen, \
+ int *errnop); \
+extern enum nss_status _nss_ ## service ## _getprotobyname_r \
+ (const char *name, struct protoent *proto, \
+ char *buffer, size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ## _getprotobynumber_r \
+ (int number, struct protoent *proto, \
+ char *buffer, size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ## _sethostent (int); \
+extern enum nss_status _nss_ ## service ## _endhostent (void); \
+extern enum nss_status _nss_ ## service ## _gethostent_r \
+ (struct hostent *host, char *buffer, size_t buflen, \
+ int *errnop, int *h_errnop); \
+extern enum nss_status _nss_ ## service ## _gethostbyname2_r \
+ (const char *name, int af, struct hostent *host, \
+ char *buffer, size_t buflen, int *errnop, \
+ int *h_errnop); \
+extern enum nss_status _nss_ ## service ## _gethostbyname_r \
+ (const char *name, struct hostent *host, char *buffer, \
+ size_t buflen, int *errnop, int *h_errnop); \
+extern enum nss_status _nss_ ## service ## _gethostbyaddr_r \
+ (const void *addr, socklen_t addrlen, int af, \
+ struct hostent *host, char *buffer, size_t buflen, \
+ int *errnop, int *h_errnop); \
+extern enum nss_status _nss_ ## service ## _setservent (int); \
+extern enum nss_status _nss_ ## service ## _endservent (void); \
+extern enum nss_status _nss_ ## service ## _getservent_r \
+ (struct servent *serv, char *buffer, size_t buflen, \
+ int *errnop); \
+extern enum nss_status _nss_ ## service ## _getservbyname_r \
+ (const char *name, const char *protocol, \
+ struct servent *serv, char *buffer, size_t buflen, \
+ int *errnop); \
+extern enum nss_status _nss_ ## service ## _getservbyport_r \
+ (int port, const char *protocol, struct servent *serv, \
+ char *buffer, size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ## _setnetgrent \
+ (const char *group, struct __netgrent *result); \
+extern enum nss_status _nss_ ## service ## _endnetgrent \
+ (struct __netgrent *result); \
+extern enum nss_status _nss_ ## service ##_getnetgrent_r \
+ (struct __netgrent *result, char *buffer, \
+ size_t buflen, int *errnop); \
+extern enum nss_status _nss_## service ##_setnetent (int stayopen); \
+extern enum nss_status _nss_ ## service ## _endnetent (void); \
+extern enum nss_status _nss_## service ##_getnetent_r \
+ (struct netent *net, char *buffer, size_t buflen, \
+ int *errnop, int *herrnop); \
+extern enum nss_status _nss_## service ##_getnetbyname_r \
+ (const char *name, struct netent *net, char *buffer, \
+ size_t buflen, int *errnop, int *herrnop); \
+extern enum nss_status _nss_## service ##_getnetbyaddr_r \
+ (uint32_t addr, int type, struct netent *net, \
+ char *buffer, size_t buflen, int *errnop, \
+ int *herrnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (dns)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
#endif /* !_NETDB_H */
extern int __fgetpwent_r (FILE * __stream, struct passwd *__resultbuf,
char *__buffer, size_t __buflen,
struct passwd **__result);
+
+#include <nss/nss.h>
+#define DECLARE_NSS_PROTOTYPES(service) \
+extern enum nss_status _nss_ ## service ## _setpwent (int); \
+extern enum nss_status _nss_ ## service ## _endpwent (void); \
+extern enum nss_status _nss_ ## service ## _getpwnam_r \
+ (const char *name, struct passwd *pwd, \
+ char *buffer, size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ## _getpwuid_r \
+ (uid_t uid, struct passwd *pwd, \
+ char *buffer, size_t buflen, int *errnop); \
+extern enum nss_status _nss_ ## service ##_getpwent_r \
+ (struct passwd *result, char *buffer, \
+ size_t buflen, int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
#endif
struct spwd **__result);
extern int __lckpwdf (void);
extern int __ulckpwdf (void);
+
+#define DECLARE_NSS_PROTOTYPES(service) \
+extern enum nss_status _nss_ ## service ## _setspent (int); \
+extern enum nss_status _nss_ ## service ## _endspent (void); \
+extern enum nss_status _nss_ ## service ## _getspent_r \
+ (struct spwd *pwd, char *buffer, size_t buflen, \
+ int *errnop); \
+extern enum nss_status _nss_ ## service ## _getspnam_r \
+ (const char *name, struct spwd *pwd, \
+ char *buffer, size_t buflen, int *errnop);
+
+DECLARE_NSS_PROTOTYPES (compat)
+DECLARE_NSS_PROTOTYPES (files)
+DECLARE_NSS_PROTOTYPES (hesiod)
+DECLARE_NSS_PROTOTYPES (nis)
+DECLARE_NSS_PROTOTYPES (nisplus)
+
+#undef DECLARE_NSS_PROTOTYPES
+
+
#endif
enum nss_status
-_nss_compat_setgrent (void)
+_nss_compat_setgrent (int stayopen)
{
enum nss_status result;
{
enum nss_status status;
- /* Store the group in the blacklist for the "+" at the end of
+ /* Store the group in the blacklist for the "+" at the end of
/etc/group */
blacklist_store_name (&result->gr_name[1], ent);
status = getgrnam_plusgroup (&result->gr_name[1], result, buffer,
enum nss_status
-_nss_compat_setpwent (void)
+_nss_compat_setpwent (int stayopen)
{
enum nss_status result;
enum nss_status
-_nss_compat_setspent (void)
+_nss_compat_setspent (int stayopen)
{
enum nss_status result;
if (parse_res)
{
- /* Store the User in the blacklist for the "+" at the end of
+ /* Store the User in the blacklist for the "+" at the end of
/etc/passwd */
blacklist_store_name (result->sp_namp, ent);
copy_spwd_changes (result, &ent->pwd, p2, p2len);
{
/* XXX Do not use fixed length buffers. */
char buf2[1024];
- char *user, *host, *domain;
+ char *user, *host, *domain;
struct __netgrent netgrdata;
bzero (&netgrdata, sizeof (struct __netgrent));
static int oldkeylen = 0;
enum nss_status
-_nss_nis_setgrent (void)
+_nss_nis_setgrent (int stayopen)
{
__libc_lock_lock (lock);
static int oldkeylen = 0;
enum nss_status
-_nss_nis_sethostent (void)
+_nss_nis_sethostent (int stayopen)
{
__libc_lock_lock (lock);
char *buffer, size_t buflen, int *errnop);
enum nss_status
-_nss_nis_setnetgrent (char *group)
+_nss_nis_setnetgrent (const char *group, struct __netgrent *dummy)
{
char *domain;
char *result;
enum nss_status
-_nss_nis_endnetgrent (void)
+_nss_nis_endnetgrent (struct __netgrent *dummy)
{
__libc_lock_lock (lock);
static int oldkeylen = 0;
enum nss_status
-_nss_nis_setnetent (void)
+_nss_nis_setnetent (int stayopen)
{
__libc_lock_lock (lock);
}
enum nss_status
-_nss_nis_setprotoent (void)
+_nss_nis_setprotoent (int stayopen)
{
enum nss_status status;
static int oldkeylen = 0;
enum nss_status
-_nss_nis_setpwent (void)
+_nss_nis_setpwent (int stayopen)
{
__libc_lock_lock (lock);
return status;
}
enum nss_status
-_nss_nis_setservent (void)
+_nss_nis_setservent (int stayopen)
{
enum nss_status status;
}
enum nss_status
-_nss_nis_getservbyname_r (const char *name, char *protocol,
+_nss_nis_getservbyname_r (const char *name, const char *protocol,
struct servent *serv, char *buffer, size_t buflen,
int *errnop)
{
}
enum nss_status
-_nss_nis_getservbyport_r (int port, char *protocol, struct servent *serv,
- char *buffer, size_t buflen, int *errnop)
+_nss_nis_getservbyport_r (int port, const char *protocol,
+ struct servent *serv, char *buffer,
+ size_t buflen, int *errnop)
{
intern_t data = { NULL, NULL };
enum nss_status status;
static int oldkeylen = 0;
enum nss_status
-_nss_nis_setspent (void)
+_nss_nis_setspent (int stayopen)
{
__libc_lock_lock (lock);
}
enum nss_status
-_nss_nisplus_setgrent (void)
+_nss_nisplus_setgrent (int stayopen)
{
enum nss_status status;
}
enum nss_status
-_nss_nisplus_sethostent (void)
+_nss_nisplus_sethostent (int stayopen)
{
enum nss_status status = NSS_STATUS_SUCCESS;
int err;
}
enum nss_status
-_nss_nisplus_setnetgrent (char *group)
-
+_nss_nisplus_setnetgrent (const char *group, struct __netgrent *dummy)
{
enum nss_status status;
char buf[strlen (group) + 30];
}
enum nss_status
-_nss_nisplus_endnetgrent (void)
+_nss_nisplus_endnetgrent (struct __netgrent *dummy)
{
__libc_lock_lock (lock);
}
enum nss_status
-_nss_nisplus_setnetent (void)
+_nss_nisplus_setnetent (int stayopen)
{
enum nss_status status = NSS_STATUS_SUCCESS;
int err;
}
enum nss_status
-_nss_nisplus_setprotoent (void)
+_nss_nisplus_setprotoent (int stayopen)
{
enum nss_status status = NSS_STATUS_SUCCESS;
enum nss_status
-_nss_nisplus_setpwent (void)
+_nss_nisplus_setpwent (int stayopen)
{
enum nss_status status = NSS_STATUS_SUCCESS;
int err;
enum nss_status
-_nss_nisplus_setservent (void)
+_nss_nisplus_setservent (int stayopen)
{
enum nss_status status = NSS_STATUS_SUCCESS;
int err;
}
enum nss_status
-_nss_nisplus_setspent (void)
+_nss_nisplus_setspent (int stayopen)
{
enum nss_status status = NSS_STATUS_SUCCESS;
int err;
#define ENTNAME netent
#define DATABASE "networks"
+#define NEED_H_ERRNO
struct netent_data {};
enum nss_status
-_nss_dns_gethostbyaddr_r (const char *addr, size_t len, int af,
+_nss_dns_gethostbyaddr_r (const void *addr, socklen_t len, int af,
struct hostent *result, char *buffer, size_t buflen,
int *errnop, int *h_errnop)
{
enum nss_status
_nss_dns_getnetbyname_r (const char *name, struct netent *result,
- char *buffer, size_t buflen, int *errnop)
+ char *buffer, size_t buflen, int *errnop,
+ int *herrnop)
{
/* Return entry for network with NAME. */
querybuf net_buffer;
enum nss_status
-_nss_dns_getnetbyaddr_r (long net, int type, struct netent *result,
- char *buffer, size_t buflen, int *errnop)
+_nss_dns_getnetbyaddr_r (uint32_t net, int type, struct netent *result,
+ char *buffer, size_t buflen, int *errnop,
+ int *herrnop)
{
/* Return entry for network with NAME. */
enum nss_status status;
if ((_res.options & RES_INIT) == 0 && __res_ninit (&_res) == -1)
return NSS_STATUS_UNAVAIL;
-
+
net2 = (u_int32_t) net;
for (cnt = 4; net2 != 0; net2 >>= 8)
net_bytes[--cnt] = net2 & 0xff;
static const char *test_dir;
/* List of temporary files. */
-struct name_list
+struct temp_name_list
{
struct qelem q;
const char *name;
-} *name_list;
+} *temp_name_list;
/* Add temporary files in list. */
static void
add_temp_file (const char *name)
{
- struct name_list *newp = (struct name_list *) calloc (sizeof (*newp), 1);
+ struct temp_name_list *newp
+ = (struct temp_name_list *) calloc (sizeof (*newp), 1);
if (newp != NULL)
{
newp->name = name;
- if (name_list == NULL)
- name_list = (struct name_list *) &newp->q;
+ if (temp_name_list == NULL)
+ temp_name_list = (struct temp_name_list *) &newp->q;
else
- insque (newp, name_list);
+ insque (newp, temp_name_list);
}
}
static void
delete_temp_files (void)
{
- while (name_list != NULL)
+ while (temp_name_list != NULL)
{
- remove (name_list->name);
- name_list = (struct name_list *) name_list->q.q_forw;
+ remove (temp_name_list->name);
+ temp_name_list = (struct temp_name_list *) temp_name_list->q.q_forw;
}
}