build-sys: be conservative about posix_fadvice

Check that function availability before use.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
This commit is contained in:
Sami Kerola 2012-10-09 21:52:19 +01:00
parent 14d7183c3d
commit 7eb2e42625
2 changed files with 7 additions and 4 deletions

View file

@ -74,6 +74,7 @@ AC_CHECK_FUNCS([\
inet_ntoa \ inet_ntoa \
memset \ memset \
nl_langinfo \ nl_langinfo \
posix_fadvise \
strdup \ strdup \
strerror \ strerror \
strrchr \ strrchr \

View file

@ -80,20 +80,22 @@ int parse_leases(void)
if (dhcpd_leases == NULL) { if (dhcpd_leases == NULL) {
err(EXIT_FAILURE, "parse_leases: %s", config.dhcpdlease_file); err(EXIT_FAILURE, "parse_leases: %s", config.dhcpdlease_file);
} }
#ifdef POSIX_FADV_WILLNEED #ifdef HAVE_POSIX_FADVISE
# ifdef POSIX_FADV_WILLNEED
posix_fadvise(fileno(dhcpd_leases), 0, 0, POSIX_FADV_WILLNEED); posix_fadvise(fileno(dhcpd_leases), 0, 0, POSIX_FADV_WILLNEED);
if (errno) { if (errno) {
err(EXIT_FAILURE, "parse_leases: fadvise %s", err(EXIT_FAILURE, "parse_leases: fadvise %s",
config.dhcpdlease_file); config.dhcpdlease_file);
} }
#endif /* POSIX_FADV_WILLNEED */ # endif /* POSIX_FADV_WILLNEED */
#ifdef POSIX_FADV_SEQUENTIAL # ifdef POSIX_FADV_SEQUENTIAL
posix_fadvise(fileno(dhcpd_leases), 0, 0, POSIX_FADV_SEQUENTIAL); posix_fadvise(fileno(dhcpd_leases), 0, 0, POSIX_FADV_SEQUENTIAL);
if (errno) { if (errno) {
err(EXIT_FAILURE, "parse_leases: fadvise %s", err(EXIT_FAILURE, "parse_leases: fadvise %s",
config.dhcpdlease_file); config.dhcpdlease_file);
} }
#endif /* POSIX_FADV_SEQUENTIAL */ # endif /* POSIX_FADV_SEQUENTIAL */
#endif /* HAVE_POSIX_FADVISE */
/* I found out that there's one lease address per 300 bytes in /* I found out that there's one lease address per 300 bytes in
* dhcpd.leases file. Malloc is little bit pessimistic and uses 250. * dhcpd.leases file. Malloc is little bit pessimistic and uses 250.