Pārlūkot izejas kodu

Fix build on Solaris by disabling support for DisableAllSwap

Fixes bug 1198. Solaris doesn't have RLIMIT_MEMLOCK for get/setrlimit,
so disable support because we don't know if all memory can be locked.
Sebastian Hahn 14 gadi atpakaļ
vecāks
revīzija
4728bd904f
2 mainītis faili ar 5 papildinājumiem un 2 dzēšanām
  1. 3 0
      ChangeLog
  2. 2 2
      src/common/compat.c

+ 3 - 0
ChangeLog

@@ -71,6 +71,9 @@ Changes in version 0.2.2.7-alpha - 2010-01-??
       but there is non-exit bandwidth, or no guard bandwidth but there
       is non-guard bandwidth, don't crash during path selection. Bugfix
       on 0.2.0.3-alpha.
+    - Fix compilation on Solaris by removing support for the
+      DisableAllSwap config option. Solaris doesn't have an rlimit for
+      mlockall, so we cannot use it safely. Bugfix on 0.2.2.6-alpha.
 
   o Removed features:
     - Remove the HSAuthorityRecordStats option that version 0 hidden

+ 2 - 2
src/common/compat.c

@@ -2176,7 +2176,7 @@ tor_threads_init(void)
 }
 #endif
 
-#if defined(HAVE_MLOCKALL) && HAVE_DECL_MLOCKALL
+#if defined(HAVE_MLOCKALL) && HAVE_DECL_MLOCKALL && defined(RLIMIT_MEMLOCK)
 /** Attempt to raise the current and max rlimit to infinity for our process.
  * This only needs to be done once and can probably only be done when we have
  * not already dropped privileges.
@@ -2244,7 +2244,7 @@ tor_mlockall(void)
    * http://msdn.microsoft.com/en-us/library/aa366895(VS.85).aspx
    */
 
-#if defined(HAVE_MLOCKALL) && HAVE_DECL_MLOCKALL
+#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.");