In capabilities-capable environments (e.g., Linux with libcap), CAP_NET_ADMIN
capability is required to honor clientside_tos and tcp_outgoing_tos
directives. The code was setting that capability when Netfilter marks or
tproxy was enabled, but missed the clientside_tos and tcp_outgoing_tos cases.
This is a Measurement Factory project
cap_value_t cap_list[10];
cap_list[ncaps] = CAP_NET_BIND_SERVICE;
++ncaps;
- if (Ip::Interceptor.TransparentActive() || Ip::Qos::TheConfig.isHitNfmarkActive() || Ip::Qos::TheConfig.isAclNfmarkActive()) {
+ if (Ip::Interceptor.TransparentActive() ||
+ Ip::Qos::TheConfig.isHitNfmarkActive() ||
+ Ip::Qos::TheConfig.isAclNfmarkActive() ||
+ Ip::Qos::TheConfig.isAclTosActive()) {
cap_list[ncaps] = CAP_NET_ADMIN;
++ncaps;
}