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 \
memset \
nl_langinfo \
posix_fadvise \
strdup \
strerror \
strrchr \

View file

@ -80,20 +80,22 @@ int parse_leases(void)
if (dhcpd_leases == NULL) {
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);
if (errno) {
err(EXIT_FAILURE, "parse_leases: fadvise %s",
config.dhcpdlease_file);
}
#endif /* POSIX_FADV_WILLNEED */
#ifdef POSIX_FADV_SEQUENTIAL
# endif /* POSIX_FADV_WILLNEED */
# ifdef POSIX_FADV_SEQUENTIAL
posix_fadvise(fileno(dhcpd_leases), 0, 0, POSIX_FADV_SEQUENTIAL);
if (errno) {
err(EXIT_FAILURE, "parse_leases: fadvise %s",
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
* dhcpd.leases file. Malloc is little bit pessimistic and uses 250.