Fix UPnP with many routers by supporting WANIPConnection:2 #20
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Some routers only advertise UPnP's
WANIPConnection:2
service. Apparently there are quite a lot of these routers (and many don't seem to support newer standards like NAT-PMP or PCP either).libplum previously only checked for and handled
WANIPConnection:1
, causing port mapping to fail on these routers.Fortunately
WANIPConnection:2
is "fully compliant with WANIPConnection:1 service, except in cases where access control has been added". (PDF spec link: https://upnp.org/specs/gw/UPnP-gw-WANIPConnection-v2-Service.pdf)This PR implements basic support for
WANIPConnection:2
, which requires very few changes (mostly just handling the different version number, plus the new729 - ConflictWithOtherMechanisms
error code).Tested on several routers that were previously problematic - UPnP now succeeds with this patch.