Annotation of embedaddon/miniupnpd/miniupnpc/README, revision 1.1
1.1 ! misho 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>