Remove the request for current memlock limits

The getrlimit call didn't have any effect. Also make some logging
less verbose on default log level, and refactor a bit.
This commit is contained in:
Sebastian Hahn 2010-01-03 19:58:28 +01:00
parent da220157a9
commit 4aa56cbd2d

View File

@ -2187,30 +2187,18 @@ tor_set_max_memlock(void)
*/
struct rlimit limit;
int ret;
/* Do we want to report current limits first? This is not really needed. */
ret = getrlimit(RLIMIT_MEMLOCK, &limit);
if (ret == -1) {
log_warn(LD_GENERAL, "Could not get RLIMIT_MEMLOCK: %s", strerror(errno));
return -1;
}
/* RLIM_INFINITY is -1 on some platforms. */
limit.rlim_cur = RLIM_INFINITY;
limit.rlim_max = RLIM_INFINITY;
ret = setrlimit(RLIMIT_MEMLOCK, &limit);
if (ret == -1) {
if (setrlimit(RLIMIT_MEMLOCK, &limit) == -1) {
if (errno == EPERM) {
log_warn(LD_GENERAL, "You appear to lack permissions to change memory "
"limits. Are you root?");
log_warn(LD_GENERAL, "Unable to raise RLIMIT_MEMLOCK: %s",
strerror(errno));
} else {
log_warn(LD_GENERAL, "Could not raise RLIMIT_MEMLOCK: %s",
strerror(errno));
}
log_warn(LD_GENERAL, "Unable to raise RLIMIT_MEMLOCK: %s",
strerror(errno));
return -1;
}
@ -2243,12 +2231,11 @@ tor_mlockall(void)
#if defined(HAVE_MLOCKALL) && HAVE_DECL_MLOCKALL && defined(RLIMIT_MEMLOCK)
if (tor_set_max_memlock() == 0) {
/* Perhaps we only want to log this if we're in a verbose mode? */
log_notice(LD_GENERAL, "RLIMIT_MEMLOCK is now set to RLIM_INFINITY.");
log_debug(LD_GENERAL, "RLIMIT_MEMLOCK is now set to RLIM_INFINITY.");
}
if (mlockall(MCL_CURRENT|MCL_FUTURE) == 0) {
log_notice(LD_GENERAL, "Insecure OS paging is effectively disabled.");
log_info(LD_GENERAL, "Insecure OS paging is effectively disabled.");
return 0;
} else {
if (errno == ENOSYS) {