diff --git a/kernel-module/xt_RTPENGINE.c b/kernel-module/xt_RTPENGINE.c index bdfda4fa4..5972c7037 100644 --- a/kernel-module/xt_RTPENGINE.c +++ b/kernel-module/xt_RTPENGINE.c @@ -2457,6 +2457,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 @@ -2517,8 +2518,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)) @@ -2580,8 +2581,6 @@ not_rtp: 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); @@ -2640,7 +2639,7 @@ skip1: skip2: kfree_skb(skb); table_push(t); - return XT_CONTINUE; + return error_nf_action; }