diff --git a/src/tcp_act.c b/src/tcp_act.c index b3993f7de..3bb4ab86c 100644 --- a/src/tcp_act.c +++ b/src/tcp_act.c @@ -207,7 +207,12 @@ static enum act_return tcp_exec_action_silent_drop(struct act_rule *rule, struct * network and has no effect on local net. */ #ifdef IP_TTL - setsockopt(conn->handle.fd, SOL_IP, IP_TTL, &one, sizeof(one)); + if (conn->src && conn->src->ss_family == AF_INET) + setsockopt(conn->handle.fd, SOL_IP, IP_TTL, &one, sizeof(one)); +#endif +#ifdef IPV6_UNICAST_HOPS + if (conn->src && conn->src->ss_family == AF_INET6) + setsockopt(conn->handle.fd, SOL_IPV6, IPV6_UNICAST_HOPS, &one, sizeof(one)); #endif out: /* kill the stream if any */