mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-22 22:25:51 +01:00
r14647@tombo: nickm | 2007-11-02 10:48:37 -0400
Use rlim_t instead of unsigned long to manipulate rlimit values. svn:r12339
This commit is contained in:
parent
6aeca5237d
commit
e76581f97e
3 changed files with 17 additions and 3 deletions
|
@ -76,6 +76,9 @@ Changes in version 0.2.0.10-alpha - 2007-1?-??
|
|||
- Stop leaking v2_download_status_map on shutdown. Bugfix on
|
||||
0.2.0.9-alpha.
|
||||
|
||||
- Minor bugfixes (portability):
|
||||
- Run correctly on platforms where rlim_t is larger than unsigned long.
|
||||
|
||||
|
||||
Changes in version 0.2.0.9-alpha - 2007-10-24
|
||||
This ninth development snapshot switches clients to the new v3 directory
|
||||
|
|
|
@ -362,6 +362,12 @@ AC_CHECK_TYPES([struct in6_addr, struct sockaddr_in6, struct sockaddr_storage, s
|
|||
#endif
|
||||
])
|
||||
|
||||
AC_CHECK_TYPES([rlim_t], , ,
|
||||
[#ifdef HAVE_SYS_RESOURCE_H
|
||||
#include <sys/resource.h>
|
||||
#endif
|
||||
])
|
||||
|
||||
if test -z "$CROSS_COMPILE"; then
|
||||
AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [
|
||||
AC_RUN_IFELSE(AC_LANG_SOURCE([
|
||||
|
|
|
@ -663,6 +663,10 @@ tor_socketpair(int family, int type, int protocol, int fd[2])
|
|||
|
||||
#define ULIMIT_BUFFER 32 /* keep 32 extra fd's beyond _ConnLimit */
|
||||
|
||||
#if defined(HAVE_GETRLIMIT) && !defined(HAVE_RLIM_T)
|
||||
typedef unsigned long rlim_t;
|
||||
#endif
|
||||
|
||||
/** Learn the maximum allowed number of file descriptors. (Some systems
|
||||
* have a low soft limit.
|
||||
*
|
||||
|
@ -684,7 +688,7 @@ set_max_file_descriptors(unsigned long limit, unsigned long cap)
|
|||
}
|
||||
#else
|
||||
struct rlimit rlim;
|
||||
unsigned long most;
|
||||
rlim_t most;
|
||||
tor_assert(limit > 0);
|
||||
tor_assert(cap > 0);
|
||||
|
||||
|
@ -693,16 +697,17 @@ set_max_file_descriptors(unsigned long limit, unsigned long cap)
|
|||
strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
//log_notice(LD_CONFIG, "%llu %llu", rlim.rlim_cur, rlim.rlim_max);
|
||||
if ((unsigned long)rlim.rlim_max < limit) {
|
||||
log_warn(LD_CONFIG,"We need %lu file descriptors available, and we're "
|
||||
"limited to %lu. Please change your ulimit -n.",
|
||||
limit, (unsigned long)rlim.rlim_max);
|
||||
return -1;
|
||||
}
|
||||
most = ((unsigned long)rlim.rlim_max > cap) ? cap : (unsigned) rlim.rlim_max;
|
||||
most = rlim.rlim_max > (rlim_t)cap ? (rlim_t)cap : rlim.rlim_max;
|
||||
if (most > (unsigned long)rlim.rlim_cur) {
|
||||
log_info(LD_NET,"Raising max file descriptors from %lu to %lu.",
|
||||
(unsigned long)rlim.rlim_cur, most);
|
||||
(unsigned long)rlim.rlim_cur, (unsigned long)most);
|
||||
}
|
||||
rlim.rlim_cur = most;
|
||||
if (setrlimit(RLIMIT_NOFILE, &rlim) != 0) {
|
||||
|
|
Loading…
Add table
Reference in a new issue