diff --git a/uvrrpd.c b/uvrrpd.c index faea20a..7136fd8 100644 --- a/uvrrpd.c +++ b/uvrrpd.c @@ -24,6 +24,7 @@ #include #include #include +#include #include "uvrrpd.h" #include "vrrp.h" @@ -125,6 +126,9 @@ int main(int argc, char *argv[]) /* pidfile */ pidfile(vrrp.vrid); + /* lock procress's virtual address space into RAM */ + mlockall(MCL_CURRENT | MCL_FUTURE); + /* process */ set_bit(KEEP_GOING, ®); while (test_bit(KEEP_GOING, ®) && !vrrp_process(&vrrp, &vnet)); @@ -148,6 +152,8 @@ int main(int argc, char *argv[]) ctrlfile_unlink(); free(pidfile_name); + munlockall(); + return EXIT_SUCCESS; }