jparisu / cpp-upnp

UPnP C++ library using Boost.Asio

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CircleCI

CPPUPnP

Boost.Asio based C++ library to implement parts of the UPnP standard.

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

About

UPnP C++ library using Boost.Asio

License:Boost Software License 1.0


Languages

Language:C++ 89.1%Language:CMake 10.8%Language:C 0.1%