mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-23 01:33:36 +08:00
039ff51ac7
The nscd daemon caches hosts data from NSS modules verbatim, without filtering protocol families or sorting them (otherwise separate caches would be needed for certain ai_flags combinations). The cache implementation is complete separate from the getaddrinfo code. This means that rebuilding getaddrinfo is not needed. The only function actually used is __bump_nl_timestamp from check_pf.c, and this change moves it into nscd/connections.c. Tested on x86_64-linux-gnu with -fexceptions, built with build-many-glibcs.py. I also backported this patch into a distribution that still supports nscd and verified manually that caching still works. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
39 lines
884 B
C
39 lines
884 B
C
#ifndef _IFADDRS_H
|
|
#include <inet/ifaddrs.h>
|
|
|
|
# ifndef _ISOMAC
|
|
|
|
#include <stdbool.h>
|
|
#include <stdint.h>
|
|
|
|
libc_hidden_proto (getifaddrs)
|
|
libc_hidden_proto (freeifaddrs)
|
|
|
|
extern int __getifaddrs (struct ifaddrs **__ifap);
|
|
libc_hidden_proto (__getifaddrs)
|
|
extern void __freeifaddrs (struct ifaddrs *__ifa);
|
|
libc_hidden_proto (__freeifaddrs)
|
|
|
|
struct in6addrinfo
|
|
{
|
|
enum {
|
|
in6ai_deprecated = 1,
|
|
in6ai_homeaddress = 2
|
|
} flags:8;
|
|
uint8_t prefixlen;
|
|
uint16_t :16;
|
|
uint32_t index;
|
|
uint32_t addr[4];
|
|
};
|
|
|
|
extern void __check_pf (bool *seen_ipv4, bool *seen_ipv6,
|
|
struct in6addrinfo **in6ai, size_t *in6ailen)
|
|
attribute_hidden;
|
|
extern void __free_in6ai (struct in6addrinfo *in6ai) attribute_hidden;
|
|
extern void __check_native (uint32_t a1_index, int *a1_native,
|
|
uint32_t a2_index, int *a2_native)
|
|
attribute_hidden;
|
|
|
|
# endif /* !_ISOMAC */
|
|
#endif /* ifaddrs.h */
|