diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index 567b2ac88..a1eae0f48 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -3604,6 +3604,7 @@ static unsigned int rtpengine46(struct sk_buff *skb, struct rtpengine_table *t, struct rtpengine_target *g; struct sk_buff *skb2; int err; + int error_nf_action = XT_CONTINUE; #if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,0) int rtp_pt_idx = -2; #endif @@ -3666,8 +3667,8 @@ not_stun: if (g->target.src_mismatch == MSM_PROPAGATE) goto skip1; /* MSM_DROP */ - err = -1; - goto out; + error_nf_action = NF_DROP; + goto skip_error; src_check_ok: if (g->target.dtls && is_dtls(skb)) @@ -3750,8 +3751,6 @@ no_intercept: err = send_proxy_packet(skb, &g->target.src_addr, &g->target.dst_addr, g->target.tos, par); -out: - if (atomic64_read(&g->stats.packets)==0) atomic_set(&g->stats.in_tos,in_tos); @@ -3810,7 +3809,7 @@ skip1: skip2: kfree_skb(skb); table_put(t); - return XT_CONTINUE; + return error_nf_action; }