Re: [bug] build failure in net/netfilter/nf_conntrack_sip.c, on latest-git

From: Patrick McHardy
Date: Sat Apr 19 2008 - 12:42:51 EST


David Miller wrote:
From: Ingo Molnar <mingo@xxxxxxx>
Date: Sat, 19 Apr 2008 12:00:35 +0200

[ netfilter-devel and netdev added to CC: ]

randconfig testing found a netfilter build failure in latest -git:

net/netfilter/nf_conntrack_sip.c: In function 'set_expected_rtp_rtcp':
net/netfilter/nf_conntrack_sip.c:786: error: 'struct nf_conntrack_expect' has no member named 'saved_ip'

http://redhat.com/~mingo/misc/config-Sat_Apr_19_11_37_02_CEST_2008.bad

disabling CONFIG_NF_CONNTRACK_SIP works it around.

I think this will fix it.

Patrick, is this how we should do it?

No, the SIP helper is also useful without NAT. This patch adds
an ifdef around the RTP call optimization for NATed clients.

Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>


diff --git a/net/netfilter/nf_conntrack_sip.c b/net/netfilter/nf_conntrack_sip.c
index 65b3ba5..9f49000 100644
--- a/net/netfilter/nf_conntrack_sip.c
+++ b/net/netfilter/nf_conntrack_sip.c
@@ -781,7 +781,7 @@ static int set_expected_rtp_rtcp(struct sk_buff *skb,
nfct_help(exp->master)->helper != nfct_help(ct)->helper ||
exp->class != class)
break;
-
+#ifdef CONFIG_NF_NAT_NEEDED
if (exp->tuple.src.l3num == AF_INET && !direct_rtp &&
(exp->saved_ip != exp->tuple.dst.u3.ip ||
exp->saved_proto.udp.port != exp->tuple.dst.u.udp.port) &&
@@ -791,6 +791,7 @@ static int set_expected_rtp_rtcp(struct sk_buff *skb,
tuple.dst.u.udp.port = exp->saved_proto.udp.port;
direct_rtp = 1;
} else
+#endif
skip_expect = 1;
} while (!skip_expect);
rcu_read_unlock();