private PortMapper() { natpmpPortMapper = new NATPMPPortMapper(); upnpPortMapper = new UPnPPortMapper(); portMappings = new List<PortMapping>(); portMappingsToRemove = new List<PortMapping>(); existingUPnPPortMappingsToRemove = new List<ExistingUPnPPortMapping>(); }
private void upnpPortMapper_DidGetExternalIPAddress(UPnPPortMapper sender, IPAddress ip) { DebugLog.WriteLine("upnpPortMapper_DidGetExternalIPAddress: {0}", ip); bool shouldNotify = false; if (upnpStatus == MappingStatus.Trying) { upnpStatus = MappingStatus.Works; mappingProtocol = MappingProtocol.UPnP; shouldNotify = true; } externalIPAddress = ip; OnExternalIPAddressDidChange(); if (shouldNotify) { OnDidFinishSearchForRouter(); } }
private void upnpPortMapper_DidEndWorking(UPnPPortMapper sender) { DecreaseWorkCount(); }
private void upnpPortMapper_DidFail(UPnPPortMapper sender) { DebugLog.WriteLine("upnpPortMapper_DidFail"); if (upnpStatus == MappingStatus.Trying) { upnpStatus = MappingStatus.Failed; } else if (upnpStatus == MappingStatus.Works) { externalIPAddress = null; } if (natpmpStatus == MappingStatus.Failed) { OnDidFinishSearchForRouter(); } }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////// private void upnpPortMapper_DidBeginWorking(UPnPPortMapper sender) { IncreaseWorkCount(); }