Added a replacement for closefrom (available on *BSD).

This commit is contained in:
Tobias Brunner
2011-10-13 11:19:12 +02:00
parent aa82ae3aa4
commit 9a8fdc159a
3 changed files with 31 additions and 3 deletions
+1 -1
View File
@@ -375,7 +375,7 @@ dnl check if native rwlocks are available
AC_CHECK_FUNCS(pthread_rwlock_init)
LIBS=$saved_LIBS
AC_CHECK_FUNCS(prctl mallinfo getpass)
AC_CHECK_FUNCS(prctl mallinfo getpass closefrom)
AC_CHECK_HEADERS(sys/sockio.h glob.h)
AC_CHECK_HEADERS(net/pfkeyv2.h netipsec/ipsec.h netinet6/ipsec.h linux/udp.h)
+20 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2008-2010 Tobias Brunner
* Copyright (C) 2008-2011 Tobias Brunner
* Copyright (C) 2005-2008 Martin Willi
* Hochschule fuer Technik Rapperswil
*
@@ -193,6 +193,25 @@ bool mkdir_p(const char *path, mode_t mode)
return TRUE;
}
#ifndef HAVE_CLOSEFROM
/**
* Described in header.
*/
void closefrom(int lowfd)
{
int maxfd, fd;
maxfd = (int)sysconf(_SC_OPEN_MAX);
if (maxfd < 0)
{
maxfd = 256;
}
for (fd = lowfd; fd < maxfd; fd++)
{
close(fd);
}
}
#endif /* HAVE_CLOSEFROM */
/**
* Return monotonic time
*/
+10 -1
View File
@@ -1,5 +1,5 @@
/*
* Copyright (C) 2008-2010 Tobias Brunner
* Copyright (C) 2008-2011 Tobias Brunner
* Copyright (C) 2008 Martin Willi
* Hochschule fuer Technik Rapperswil
*
@@ -408,6 +408,15 @@ char *translate(char *str, const char *from, const char *to);
*/
bool mkdir_p(const char *path, mode_t mode);
#ifndef HAVE_CLOSEFROM
/**
* Close open file descriptors greater than or equal to lowfd.
*
* @param lowfd start closing file descriptoros from here
*/
void closefrom(int lowfd);
#endif
/**
* Get a timestamp from a monotonic time source.
*