|
@@ -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
|