Cpp Upnp – UPnP C++ library using Boost.Asio
Boost.Asio based C++ library to implement parts of the UPnP standard.
Table of Contents
Status
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.
Build instructions
Include in your project
If you have sources of CPPUPnP somewhere on your disk, simply set the
CPPUPnP_DIR
variable to point to that CPPUPnP’s directory and call
find_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 calling
find_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)
Build examples and tests
Please have a look into .circleci/config.yml
Useful links/documents
UPnP standards
RFC6970
UPnP IGD “A Fox in the Hen House” (pdf)
Golang code that inspired this library
Read more here: Source link