aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2014-02-02 15:45:00 -0500
committerNick Mathewson <nickm@torproject.org>2014-02-02 15:45:00 -0500
commitfd8947afc2815cc3316513fe4461d8d8096eddea (patch)
treecdc6d28292a882b2afe1285bbf8ecfa379344fc7 /src
parent09ccc4c4a3b67695295ad95f24b2f102d5f2fa1a (diff)
downloadtor-fd8947afc2815cc3316513fe4461d8d8096eddea.tar
tor-fd8947afc2815cc3316513fe4461d8d8096eddea.tar.gz
Move the friendly warning about TPROXY and root to EPERM time
I'm doing this because: * User doesn't mean you're running as root, and running as root doesn't mean you've set User. * It's possible that the user has done some other capability-based hack to retain the necessary privileges.
Diffstat (limited to 'src')
-rw-r--r--src/or/config.c7
-rw-r--r--src/or/connection.c8
2 files changed, 6 insertions, 9 deletions
diff --git a/src/or/config.c b/src/or/config.c
index a2366c06f..c921bb731 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -2540,13 +2540,6 @@ options_validate(or_options_t *old_options, or_options_t *options,
REJECT("Cannot use TransTPROXY without any valid TransPort or "
"TransListenAddress.");
}
- /* Friendly suggestion about running as root initially. */
- if (!options->User) {
- log_warn(LD_CONFIG,
- "You have enabled TransTPROXY but have not specified the "
- "\"User\" option. TransTPROXY will not function without "
- "root privileges.");
- }
}
#else
if (options->TransPort_set || options->TransTPROXY)
diff --git a/src/or/connection.c b/src/or/connection.c
index 7d8feeb95..6dbba668c 100644
--- a/src/or/connection.c
+++ b/src/or/connection.c
@@ -1039,9 +1039,13 @@ connection_listener_new(const struct sockaddr *listensockaddr,
if (options->TransTPROXY && type == CONN_TYPE_AP_TRANS_LISTENER) {
int one = 1;
if (setsockopt(s, SOL_IP, IP_TRANSPARENT, &one, sizeof(one)) < 0) {
+ const char *extra = "";
int e = tor_socket_errno(s);
- log_warn(LD_NET, "Error setting IP_TRANSPARENT flag: %s",
- tor_socket_strerror(e));
+ if (e == EPERM)
+ extra = "TransTPROXY requires root privileges or similar"
+ " capabilities.";
+ log_warn(LD_NET, "Error setting IP_TRANSPARENT flag: %s.%s",
+ tor_socket_strerror(e), extra);
}
}
#endif