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) AC_CHECK_FUNCS(pthread_rwlock_init)
LIBS=$saved_LIBS 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(sys/sockio.h glob.h)
AC_CHECK_HEADERS(net/pfkeyv2.h netipsec/ipsec.h netinet6/ipsec.h linux/udp.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 * Copyright (C) 2005-2008 Martin Willi
* Hochschule fuer Technik Rapperswil * Hochschule fuer Technik Rapperswil
* *
@@ -193,6 +193,25 @@ bool mkdir_p(const char *path, mode_t mode)
return TRUE; 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 * 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 * Copyright (C) 2008 Martin Willi
* Hochschule fuer Technik Rapperswil * 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); 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. * Get a timestamp from a monotonic time source.
* *