|
@@ -260,7 +260,11 @@ static unsigned int ip_nat_sdp(struct sk_buff **pskb,
|
|
|
DEBUGP("ip_nat_sdp():\n");
|
|
|
|
|
|
/* Connection will come from reply */
|
|
|
- newip = ct->tuplehash[!dir].tuple.dst.u3.ip;
|
|
|
+ if (ct->tuplehash[dir].tuple.src.u3.ip ==
|
|
|
+ ct->tuplehash[!dir].tuple.dst.u3.ip)
|
|
|
+ newip = exp->tuple.dst.u3.ip;
|
|
|
+ else
|
|
|
+ newip = ct->tuplehash[!dir].tuple.dst.u3.ip;
|
|
|
|
|
|
exp->saved_ip = exp->tuple.dst.u3.ip;
|
|
|
exp->tuple.dst.u3.ip = newip;
|