mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-20 20:23:03 +02: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
@ -76,6 +76,9 @@ Changes in version 0.2.0.10-alpha - 2007-1?-??
|
|||||||
- Stop leaking v2_download_status_map on shutdown. Bugfix on
|
- Stop leaking v2_download_status_map on shutdown. Bugfix on
|
||||||
0.2.0.9-alpha.
|
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
|
Changes in version 0.2.0.9-alpha - 2007-10-24
|
||||||
This ninth development snapshot switches clients to the new v3 directory
|
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
|
#endif
|
||||||
])
|
])
|
||||||
|
|
||||||
|
AC_CHECK_TYPES([rlim_t], , ,
|
||||||
|
[#ifdef HAVE_SYS_RESOURCE_H
|
||||||
|
#include <sys/resource.h>
|
||||||
|
#endif
|
||||||
|
])
|
||||||
|
|
||||||
if test -z "$CROSS_COMPILE"; then
|
if test -z "$CROSS_COMPILE"; then
|
||||||
AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [
|
AC_CACHE_CHECK([whether time_t is signed], tor_cv_time_t_signed, [
|
||||||
AC_RUN_IFELSE(AC_LANG_SOURCE([
|
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 */
|
#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
|
/** Learn the maximum allowed number of file descriptors. (Some systems
|
||||||
* have a low soft limit.
|
* have a low soft limit.
|
||||||
*
|
*
|
||||||
@ -684,7 +688,7 @@ set_max_file_descriptors(unsigned long limit, unsigned long cap)
|
|||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
struct rlimit rlim;
|
struct rlimit rlim;
|
||||||
unsigned long most;
|
rlim_t most;
|
||||||
tor_assert(limit > 0);
|
tor_assert(limit > 0);
|
||||||
tor_assert(cap > 0);
|
tor_assert(cap > 0);
|
||||||
|
|
||||||
@ -693,16 +697,17 @@ set_max_file_descriptors(unsigned long limit, unsigned long cap)
|
|||||||
strerror(errno));
|
strerror(errno));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
//log_notice(LD_CONFIG, "%llu %llu", rlim.rlim_cur, rlim.rlim_max);
|
||||||
if ((unsigned long)rlim.rlim_max < limit) {
|
if ((unsigned long)rlim.rlim_max < limit) {
|
||||||
log_warn(LD_CONFIG,"We need %lu file descriptors available, and we're "
|
log_warn(LD_CONFIG,"We need %lu file descriptors available, and we're "
|
||||||
"limited to %lu. Please change your ulimit -n.",
|
"limited to %lu. Please change your ulimit -n.",
|
||||||
limit, (unsigned long)rlim.rlim_max);
|
limit, (unsigned long)rlim.rlim_max);
|
||||||
return -1;
|
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) {
|
if (most > (unsigned long)rlim.rlim_cur) {
|
||||||
log_info(LD_NET,"Raising max file descriptors from %lu to %lu.",
|
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;
|
rlim.rlim_cur = most;
|
||||||
if (setrlimit(RLIMIT_NOFILE, &rlim) != 0) {
|
if (setrlimit(RLIMIT_NOFILE, &rlim) != 0) {
|
||||||
|
Loading…
Reference in New Issue
Block a user