Версия Годо:
3.2.1 стабильный
ОС / устройство, включая версию:
Windows 10
Я использую маршрутизатор Orange Livebox, я не уверен, какие части описания .xml могут быть полезны и безопасны для совместного использования. Также у меня нет доступа администратора к нему.
Описание проблемы:
Добавление сопоставления портов выводит ошибку в отношении delete_port_mapping. Сопоставление портов добавлено правильно и может быть удалено позже без ошибок.
Проблема, описанная в этом вопросе https://godotengine.org/qa/65365/delete_port_mapping-condition-i-0-is-true
Выводит 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()
Действия по воспроизведению:
Выполните следующее:
var upnp = UPNP.new()
upnp.discover()
upnp.add_port_mapping(4200)
Проект минимального воспроизведения:
ошибка upnp repro.zip
Это довольно неприятная ошибка, которая также встречается в моем проекте.
РЕДАКТИРОВАТЬ: Если у кого-то есть такая же ошибка и обнаруживается эта проблема, вы можете обойти ошибку, добавив сопоставление портов непосредственно на шлюз по умолчанию, что то же самое, что и upnp.add_port_mapping, за исключением попытки удалить несуществующий порт.
upnp = UPNP.new()
var result = upnp.discover()
if result == UPNP.UPNP_RESULT_SUCCESS:
var gateway = upnp.get_gateway()
gateway.add_port_mapping(4200)
Самый полезный комментарий
Это довольно неприятная ошибка, которая также встречается в моем проекте.
РЕДАКТИРОВАТЬ: Если у кого-то есть такая же ошибка и обнаруживается эта проблема, вы можете обойти ошибку, добавив сопоставление портов непосредственно на шлюз по умолчанию, что то же самое, что и upnp.add_port_mapping, за исключением попытки удалить несуществующий порт.