Fix stupid mistake

This commit is contained in:
ProtoByter 2022-11-11 20:54:40 +00:00
parent 02cbad1bff
commit 9b0d30e5ae

View File

@ -1,13 +1,24 @@
@file:OptIn(DelicateCoroutinesApi::class)
package org.muellerssoftware.openproximitychat.common
import kotlinx.coroutines.*
import org.bitlet.weupnp.GatewayDevice
import org.bitlet.weupnp.GatewayDiscover
object UPnPManager {
var gateway: GatewayDevice? = null
val mappedPorts = mutableMapOf<Int, Int>()
var discoveryJob: Job = Job()
init {
runBlocking {
discoveryJob = GlobalScope.launch {
startGatewayDiscover()
}
}
}
fun startGatewayDiscover() {
val gatewayDiscoverer = GatewayDiscover()
for (i in 0..9) {
Logging.info("Searching for UPnP gateway... (Attempt ${i + 1})")
@ -23,6 +34,11 @@ object UPnPManager {
}
else {
Logging.info("UPnP gateway found: ${gateway!!.friendlyName}")
val ports = mappedPorts.toMutableMap()
mappedPorts.clear()
ports.map {
mapPort(it.key, it.value)
}
}
}
@ -31,7 +47,11 @@ object UPnPManager {
}
fun mapPort(internalPort: Int, externalPort: Int) {
val succeeded = gateway?.addPortMapping(externalPort, internalPort, gateway!!.localAddress.hostAddress, "UDP", "OPCFabric mapped port")
if (gateway == null) {
mappedPorts.put(internalPort, externalPort)
}
val succeeded = gateway?.addPortMapping(externalPort, internalPort, gateway!!.localAddress.hostAddress, "UDP", "OpenProximityChat mapped port")
if (succeeded == true) {
mappedPorts.put(internalPort, externalPort)
}