diff options
author | Tobias Brunner <tobias@strongswan.org> | 2011-10-13 10:34:51 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2011-10-13 11:19:12 +0200 |
commit | 9a8fdc159a49ba82568f53cb9275b3ded092ba76 (patch) | |
tree | cd4bbd220ba63e702aa8c233cb5a07abc390ea10 /src/libstrongswan/utils.c | |
parent | aa82ae3aa48f9090adc80818724b7aa9e8724d25 (diff) | |
download | strongswan-9a8fdc159a49ba82568f53cb9275b3ded092ba76.tar.bz2 strongswan-9a8fdc159a49ba82568f53cb9275b3ded092ba76.tar.xz |
Added a replacement for closefrom (available on *BSD).
Diffstat (limited to 'src/libstrongswan/utils.c')
-rw-r--r-- | src/libstrongswan/utils.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/libstrongswan/utils.c b/src/libstrongswan/utils.c index 1129ea3a6..eca613a5d 100644 --- a/src/libstrongswan/utils.c +++ b/src/libstrongswan/utils.c @@ -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 */ |