Blame src/common/setrlim.c

Szabolcs Nagy 814c6f
#include <string.h>
Szabolcs Nagy 814c6f
#include <errno.h>
Szabolcs Nagy 814c6f
#include <sys/resource.h>
Szabolcs Nagy 814c6f
#include "test.h"
Szabolcs Nagy 814c6f
Szabolcs Nagy 814c6f
int t_setrlim(int r, long lim)
Szabolcs Nagy 814c6f
{
Szabolcs Nagy 814c6f
	struct rlimit rl;
Szabolcs Nagy 814c6f
Szabolcs Nagy 814c6f
	if (getrlimit(r, &rl)) {
Szabolcs Nagy 814c6f
		t_error("getrlimit %d: %s\n", r, strerror(errno));
Szabolcs Nagy 814c6f
		return -1;
Szabolcs Nagy 814c6f
	}
Szabolcs Nagy 814c6f
	if (lim > rl.rlim_max)
Szabolcs Nagy 814c6f
		return -1;
Szabolcs Nagy 814c6f
	if (lim == rl.rlim_max && lim == rl.rlim_cur)
Szabolcs Nagy 814c6f
		return 0;
Szabolcs Nagy 814c6f
	rl.rlim_max = lim;
Szabolcs Nagy 814c6f
	rl.rlim_cur = lim;
Szabolcs Nagy 814c6f
	if (setrlimit(r, &rl)) {
Szabolcs Nagy 157cc4
		t_error("setrlimit(%d, %ld): %s\n", r, lim, strerror(errno));
Szabolcs Nagy 814c6f
		return -1;
Szabolcs Nagy 814c6f
	}
Szabolcs Nagy 814c6f
	return 0;
Szabolcs Nagy 814c6f
}
Szabolcs Nagy 814c6f