File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpc / README
Revision 1.1.1.3 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:21:37 2023 UTC (8 months ago) by misho
Branches: miniupnpc, elwix, MAIN
CVS tags: v2_2_5p0, HEAD
Version 2.2.5p0

    1: Project: miniupnp
    2: Project web page: http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
    3: github: https://github.com/miniupnp/miniupnp
    4: Author: Thomas Bernard
    5: Copyright (c) 2005-2023 Thomas Bernard
    6: This software is subject to the conditions detailed in the
    7: LICENSE file provided within this distribution.
    8: 
    9: 
   10: * miniUPnP Client - miniUPnPc *
   11: 
   12: To compile, simply run 'gmake' (could be 'make' on your system).
   13: Under win32, to compile with MinGW, type "mingw32make.bat".
   14: MS Visual C solution and project files are supplied in the msvc/ subdirectory.
   15: The miniupnpc library is available as a static library or as a DLL :
   16: define MINIUPNP_STATICLIB if you want to link against the static library.
   17: 
   18: The compilation is known to work under linux, FreeBSD,
   19: OpenBSD, MacOS X, AmigaOS and cygwin.
   20: The official AmigaOS4.1 SDK was used for AmigaOS4 and GeekGadgets for AmigaOS3.
   21: upx (http://upx.sourceforge.net) is used to compress the win32 .exe files.
   22: 
   23: To install the library and headers on the system use :
   24: > su
   25: > make install
   26: > exit
   27: 
   28: alternatively, to install into a specific location, use :
   29: > INSTALLPREFIX=/usr/local make install
   30: 
   31: upnpc.c is a sample client using the libminiupnpc.
   32: To use the libminiupnpc in your application, link it with
   33: libminiupnpc.a (or .so) and use the following functions found in miniupnpc.h,
   34: upnpcommands.h and miniwget.h :
   35: - upnpDiscover()
   36: - UPNP_GetValidIGD()
   37: - miniwget()
   38: - parserootdesc()
   39: - GetUPNPUrls()
   40: - UPNP_* (calling UPNP methods)
   41: 
   42: Note : use #include <miniupnpc/miniupnpc.h> etc... for the includes
   43: and -lminiupnpc for the link
   44: 
   45: Discovery process is speeded up when MiniSSDPd is running on the machine.
   46: 
   47: 
   48: * Python module *
   49: 
   50: you can build a python module with 'make pythonmodule'
   51: and install it with 'make installpythonmodule'.
   52: setup.py (and setupmingw32.py) are included in the distribution.
   53: 
   54: 
   55: Feel free to contact me if you have any problem :
   56: e-mail : miniupnp@free.fr
   57: 
   58: If you are using libminiupnpc in your application, please
   59: send me an email !
   60: 
   61: For any question, you can use the web forum :
   62: https://miniupnp.tuxfamily.org/forum/
   63: 
   64: Bugs should be reported on GitHub :
   65: https://github.com/miniupnp/miniupnp/issues
   66: 
   67: * Linux firewall configuration for UPnP clients *
   68: 
   69: Due to how UPnP protocol is designed, unicast responses to UPnP multicast client
   70: requests are not tracked by Linux netfilter. And therefore netfilter executes
   71: default action for them (which is in most cases DROP response packet).
   72: 
   73: To workaround this limitation, custom ipset hash table can be used. It is
   74: supported since Linux kernel >= 2.6.39.
   75: 
   76: Rules for IPv4:
   77: $ ipset create upnp hash:ip,port timeout 3
   78: $ iptables -A OUTPUT -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j SET --add-set upnp src,src --exist
   79: $ iptables -A INPUT -p udp -m set --match-set upnp dst,dst -j ACCEPT
   80: $ iptables -A INPUT -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j ACCEPT
   81: 
   82: Rules for IPv6:
   83: $ ipset create upnp6 hash:ip,port timeout 3 family inet6
   84: $ ip6tables -A OUTPUT -d ff02::c/128 -p udp -m udp --dport 1900 -j SET --add-set upnp6 src,src --exist
   85: $ ip6tables -A OUTPUT -d ff05::c/128 -p udp -m udp --dport 1900 -j SET --add-set upnp6 src,src --exist
   86: $ ip6tables -A INPUT -p udp -m set --match-set upnp6 dst,dst -j ACCEPT
   87: $ ip6tables -A INPUT -d ff02::c/128 -p udp -m udp --dport 1900 -j ACCEPT
   88: $ ip6tables -A INPUT -d ff05::c/128 -p udp -m udp --dport 1900 -j ACCEPT
   89: 
   90: Detailed description is available on:
   91: https://serverfault.com/a/911286
   92: https://unix.stackexchange.com/a/444804

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>