[tor-commits] [tor/master] Fix transparent proxy checks to allow OS X to use ipfw or pf

nickm at torproject.org nickm at torproject.org
Sun Dec 21 18:38:01 UTC 2014


commit d93516c445cfb25904da3d86fd6096cce1179b59
Author: teor <teor2345 at gmail.com>
Date:   Sat Dec 20 22:27:21 2014 +1100

    Fix transparent proxy checks to allow OS X to use ipfw or pf
    
    OS X uses ipfw (FreeBSD) or pf (OpenBSD). Update the transparent
    proxy option checks to allow for both ipfw and pf on OS X.
    
    Fixes bug 14002.
---
 changes/bug14002-osx-transproxy-ipfw-pf |    4 ++++
 src/or/config.c                         |   14 +++++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/changes/bug14002-osx-transproxy-ipfw-pf b/changes/bug14002-osx-transproxy-ipfw-pf
new file mode 100644
index 0000000..a08bbdc
--- /dev/null
+++ b/changes/bug14002-osx-transproxy-ipfw-pf
@@ -0,0 +1,4 @@
+  o Minor bugfixes:
+    - OS X uses ipfw (FreeBSD) or pf (OpenBSD). Update the transparent
+      proxy option checks to allow for both ipfw and pf on OS X.
+      Fixes bug 14002.
diff --git a/src/or/config.c b/src/or/config.c
index 28f1df0..da756f6 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -2597,20 +2597,24 @@ options_validate(or_options_t *old_options, or_options_t *options,
     if (!strcasecmp(options->TransProxyType, "default")) {
       options->TransProxyType_parsed = TPT_DEFAULT;
     } else if (!strcasecmp(options->TransProxyType, "pf-divert")) {
-#ifndef __OpenBSD__
-      REJECT("pf-divert is a OpenBSD-specific feature.");
+#if !defined(__OpenBSD__) && !defined( DARWIN )
+      /* Later versions of OS X have pf */
+      REJECT("pf-divert is a OpenBSD-specific "
+             "and OS X/Darwin-specific feature.");
 #else
       options->TransProxyType_parsed = TPT_PF_DIVERT;
 #endif
     } else if (!strcasecmp(options->TransProxyType, "tproxy")) {
-#ifndef __linux__
+#if !defined(__linux__)
       REJECT("TPROXY is a Linux-specific feature.");
 #else
       options->TransProxyType_parsed = TPT_TPROXY;
 #endif
     } else if (!strcasecmp(options->TransProxyType, "ipfw")) {
-#ifndef __FreeBSD__
-      REJECT("ipfw is a FreeBSD-specific feature.");
+#if !defined(__FreeBSD__) && !defined( DARWIN )
+      /* Earlier versions of OS X have ipfw */
+      REJECT("ipfw is a FreeBSD-specific"
+             "and OS X/Darwin-specific feature.");
 #else
       options->TransProxyType_parsed = TPT_IPFW;
 #endif





More information about the tor-commits mailing list