Versão Godot:
3.2.1 estável
SO / dispositivo incluindo versão:
Windows 10
O roteador que uso é um Orange Livebox, não tenho certeza de quais partes da descrição .xml podem ser úteis e seguras para compartilhar. Além disso, não tenho acesso de administrador a ele.
Descrição do problema:
Adicionar um mapeamento de porta gera um erro em relação a delete_port_mapping. O mapeamento da porta parece ser adicionado corretamente e pode ser excluído posteriormente sem erros.
Problema descrito nesta pergunta https://godotengine.org/qa/65365/delete_port_mapping-condition-i-0-is-true
Produz E 0:00:03.211 delete_port_mapping: Condition "i != (0)" is true. Returned: UPNP::upnp_result(i)
<C++ Source> modules/upnp/upnp_device.cpp:90 @ delete_port_mapping()
<Stack Trace> UPNPTest.gd:8 @ _ready()
Passos para reproduzir:
Execute o seguinte:
var upnp = UPNP.new()
upnp.discover()
upnp.add_port_mapping(4200)
Projeto de reprodução mínima:
bug upnp repro.zip
Este é um bug muito chato que também está acontecendo no meu projeto.
EDITAR: Se alguém tiver o mesmo bug e encontrar esse problema, você pode contornar o erro adicionando o mapeamento da porta diretamente ao gateway padrão, que é a mesma coisa que o upnp.add_port_mapping faz, menos tentar excluir uma porta não existente.
upnp = UPNP.new()
var result = upnp.discover()
if result == UPNP.UPNP_RESULT_SUCCESS:
var gateway = upnp.get_gateway()
gateway.add_port_mapping(4200)
Comentários muito úteis
Este é um bug muito chato que também está acontecendo no meu projeto.
EDITAR: Se alguém tiver o mesmo bug e encontrar esse problema, você pode contornar o erro adicionando o mapeamento da porta diretamente ao gateway padrão, que é a mesma coisa que o upnp.add_port_mapping faz, menos tentar excluir uma porta não existente.