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

From: Patrick McHardy <[email-masked]>
Date: Sat, 19 Apr 2008 18:38:41 +0200

David Miller wrote:
> From: Ingo Molnar <[email-masked]>
> 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 <[email-masked]>

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();