UPnP C++ library using Boost.Asio
Boost.Asio based C++ library to implement parts of the UPnP standard.
This library is under development and the API will very likely change in a
backward incompatible way.
The current functionality includes listing, creating and deleting of TCP and
UDP port mappings on IGD (v1 and v2) devices.
If you have sources of CPPUPnP somewhere on your disk, simply set theCPPUPnP_DIR
variable to point to that CPPUPnP’s directory and callfind_package(CPPUPnP REQUIRED)
as is done in the
example/CMakeLists.txt
If you don’t have CPPUPnP on your disk, have cmake download it prior to callingfind_package(CPPUPnP REQUIRED)
like so:
include(FetchContent)
fetchcontent_populate(CPPUPnP GIT_REPOSITORY <CPPUPnP-GIT-Repository>)
set(CPPUPnP_DIR ${CMAKE_BINARY_DIR}/cppupnp-src)
find_package(CPPUPnP REQUIRED)
Please have a look into .circleci/config.yml
UPnP standards
RFC6970
UPnP IGD “A Fox in the Hen House” (pdf)
Golang code that inspired this library