Lines Matching refs:cur

5008         NATTraversalInfo *cur = m->CurrentNATTraversal;
5009 mDNSv4Addr EffectiveAddress = HaveRoutable ? m->AdvertisedV4.ip.v4 : cur->NewAddress;
5014 cur->ExpiryTime = 0;
5015 cur->NewResult = mStatus_NoError;
5019 if (m->timenow - cur->retryPortMap >= 0) // Time to send a mapping request for this packet
5021 if (cur->ExpiryTime && cur->ExpiryTime - m->timenow < 0) // Mapping has expired
5023 cur->ExpiryTime = 0;
5024 cur->retryInterval = NATMAP_INIT_RETRY;
5027 (void)uDNS_SendNATMsg(m, cur, mDNStrue); // Will also do UPnP discovery for us, if necessary
5029 if (cur->ExpiryTime) // If have active mapping then set next renewal time halfway to expiry
5030 NATSetNextRenewalTime(m, cur);
5033 if (cur->retryInterval < NATMAP_INIT_RETRY ) cur->retryInterval = NATMAP_INIT_RETRY;
5034 else if (cur->retryInterval < NATMAP_MAX_RETRY_INTERVAL / 2) cur->retryInterval *= 2;
5035 else cur->retryInterval = NATMAP_MAX_RETRY_INTERVAL;
5036 cur->retryPortMap = m->timenow + cur->retryInterval;
5040 if (m->NextScheduledNATOp - cur->retryPortMap > 0)
5042 m->NextScheduledNATOp = cur->retryPortMap;
5061 if (!mDNSIPv4AddressIsZero(EffectiveAddress) || cur->retryInterval > NATMAP_INIT_RETRY * 8)
5063 const mStatus EffectiveResult = cur->NewResult ? cur->NewResult : mDNSv4AddrIsRFC1918(&EffectiveAddress) ? mStatus_DoubleNAT : mStatus_NoError;
5067 ExternalPort = cur->IntPort;
5068 else if (!mDNSIPv4AddressIsZero(EffectiveAddress) && cur->ExpiryTime)
5069 ExternalPort = cur->RequestedPort;
5073 if (!cur->Protocol || HaveRoutable || cur->ExpiryTime || cur->retryInterval > NATMAP_INIT_RETRY * 8)
5075 if (!mDNSSameIPv4Address(cur->ExternalAddress, EffectiveAddress) ||
5076 !mDNSSameIPPort (cur->ExternalPort, ExternalPort) ||
5077 cur->Result != EffectiveResult)
5079 //LogMsg("NAT callback %d %d %d", cur->Protocol, cur->ExpiryTime, cur->retryInterval);
5080 if (cur->Protocol && mDNSIPPortIsZero(ExternalPort) && !mDNSIPv4AddressIsZero(m->Router.ip.v4))
5084 cur, &m->Router, &EffectiveAddress, mDNSVal16(cur->IntPort), cur->retryInterval, EffectiveResult);
5087 cur, &m->Router, &EffectiveAddress, mDNSVal16(cur->IntPort), cur->retryInterval, EffectiveResult);
5090 cur->ExternalAddress = EffectiveAddress;
5091 cur->ExternalPort = ExternalPort;
5092 cur->Lifetime = cur->ExpiryTime && !mDNSIPPortIsZero(ExternalPort) ?
5093 (cur->ExpiryTime - m->timenow + mDNSPlatformOneSecond/2) / mDNSPlatformOneSecond : 0;
5094 cur->Result = EffectiveResult;
5096 if (cur->clientCallback)
5097 cur->clientCallback(m, cur);
5099 // MUST NOT touch cur after invoking the callback