35 changed files with 157 additions and 1633 deletions
@ -1,633 +0,0 @@
|
||||
$Id: Changelog.txt,v 1.208 2015/07/15 12:18:59 nanard Exp $ |
||||
miniUPnP client Changelog. |
||||
|
||||
2015/07/15: |
||||
Check malloc/calloc |
||||
|
||||
2015/06/16: |
||||
update getDevicesFromMiniSSDPD() to process longer minissdpd |
||||
responses |
||||
|
||||
2015/05/22: |
||||
add searchalltypes param to upnpDiscoverDevices() |
||||
increments API_VERSION to 13 |
||||
|
||||
2015/04/30: |
||||
upnpc: output version on the terminal |
||||
|
||||
2015/04/27: |
||||
_BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE |
||||
fix CMakeLists.txt COMPILE_DEFINITIONS |
||||
fix getDevicesFromMiniSSDPD() not setting scope_id |
||||
improve -r command of upnpc command line tool |
||||
|
||||
2014/11/17: |
||||
search all : |
||||
upnpDiscoverDevices() / upnpDiscoverAll() functions |
||||
listdevices executable |
||||
increment API_VERSION to 12 |
||||
validate igd_desc_parse |
||||
|
||||
2014/11/13: |
||||
increment API_VERSION to 11 |
||||
|
||||
2014/11/05: |
||||
simplified function GetUPNPUrls() |
||||
|
||||
2014/09/11: |
||||
use remoteHost arg of DeletePortMapping |
||||
|
||||
2014/09/06: |
||||
Fix python3 build |
||||
|
||||
2014/07/01: |
||||
Fix parsing of IGD2 root descriptions |
||||
|
||||
2014/06/10: |
||||
rename LIBSPEC to MINIUPNP_LIBSPEC |
||||
|
||||
2014/05/15: |
||||
Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange |
||||
|
||||
2014/02/05: |
||||
handle EINPROGRESS after connect() |
||||
|
||||
2014/02/03: |
||||
minixml now handle XML comments |
||||
|
||||
VERSION 1.9 : released 2014/01/31 |
||||
|
||||
2014/01/31: |
||||
added argument remoteHost to UPNP_GetSpecificPortMappingEntry() |
||||
increment API_VERSION to 10 |
||||
|
||||
2013/12/09: |
||||
--help and -h arguments in upnpc.c |
||||
|
||||
2013/10/07: |
||||
fixed potential buffer overrun in miniwget.c |
||||
Modified UPNP_GetValidIGD() to check for ExternalIpAddress |
||||
|
||||
2013/08/01: |
||||
define MAXHOSTNAMELEN if not already done |
||||
|
||||
2013/06/06: |
||||
update upnpreplyparse to allow larger values (128 chars instead of 64) |
||||
|
||||
2013/05/14: |
||||
Update upnpreplyparse to take into account "empty" elements |
||||
validate upnpreplyparse.c code with "make check" |
||||
|
||||
2013/05/03: |
||||
Fix Solaris build thanks to Maciej Małecki |
||||
|
||||
2013/04/27: |
||||
Fix testminiwget.sh for BSD |
||||
|
||||
2013/03/23: |
||||
Fixed Makefile for *BSD |
||||
|
||||
2013/03/11: |
||||
Update Makefile to use JNAerator version 0.11 |
||||
|
||||
2013/02/11: |
||||
Fix testminiwget.sh for use with dash |
||||
Use $(DESTDIR) in Makefile |
||||
|
||||
VERSION 1.8 : released 2013/02/06 |
||||
|
||||
2012/10/16: |
||||
fix testminiwget with no IPv6 support |
||||
|
||||
2012/09/27: |
||||
Rename all include guards to not clash with C99 |
||||
(7.1.3 Reserved identifiers). |
||||
|
||||
2012/08/30: |
||||
Added -e option to upnpc program (set description for port mappings) |
||||
|
||||
2012/08/29: |
||||
Python 3 support (thanks to Christopher Foo) |
||||
|
||||
2012/08/11: |
||||
Fix a memory link in UPNP_GetValidIGD() |
||||
Try to handle scope id in link local IPv6 URL under MS Windows |
||||
|
||||
2012/07/20: |
||||
Disable HAS_IP_MREQN on DragonFly BSD |
||||
|
||||
2012/06/28: |
||||
GetUPNPUrls() now inserts scope into link-local IPv6 addresses |
||||
|
||||
2012/06/23: |
||||
More error return checks in upnpc.c |
||||
#define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id |
||||
parseURL() now parses IPv6 addresses scope |
||||
new parameter for miniwget() : IPv6 address scope |
||||
increment API_VERSION to 9 |
||||
|
||||
2012/06/20: |
||||
fixed CMakeLists.txt |
||||
|
||||
2012/05/29 |
||||
Improvements in testminiwget.sh |
||||
|
||||
VERSION 1.7 : released 2012/05/24 |
||||
|
||||
2012/05/01: |
||||
Cleanup settings of CFLAGS in Makefile |
||||
Fix signed/unsigned integer comparaisons |
||||
|
||||
2012/04/20: |
||||
Allow to specify protocol with TCP or UDP for -A option |
||||
|
||||
2012/04/09: |
||||
Only try to fetch XML description once in UPNP_GetValidIGD() |
||||
Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments. |
||||
|
||||
2012/04/05: |
||||
minor improvements to minihttptestserver.c |
||||
|
||||
2012/03/15: |
||||
upnperrors.c returns valid error string for unrecognized error codes |
||||
|
||||
2012/03/08: |
||||
make minihttptestserver listen on loopback interface instead of 0.0.0.0 |
||||
|
||||
2012/01/25: |
||||
Maven installation thanks to Alexey Kuznetsov |
||||
|
||||
2012/01/21: |
||||
Replace WIN32 macro by _WIN32 |
||||
|
||||
2012/01/19: |
||||
Fixes in java wrappers thanks to Alexey Kuznetsov : |
||||
https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc |
||||
Make and install .deb packages (python) thanks to Alexey Kuznetsov : |
||||
https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc |
||||
|
||||
2012/01/07: |
||||
The multicast interface can now be specified by name with IPv4. |
||||
|
||||
2012/01/02: |
||||
Install man page |
||||
|
||||
2011/11/25: |
||||
added header to Port Mappings list in upnpc.c |
||||
|
||||
2011/10/09: |
||||
Makefile : make clean now removes jnaerator generated files. |
||||
MINIUPNPC_VERSION in miniupnpc.h (updated by make) |
||||
|
||||
2011/09/12: |
||||
added rootdescURL to UPNPUrls structure. |
||||
|
||||
VERSION 1.6 : released 2011/07/25 |
||||
|
||||
2011/07/25: |
||||
Update doc for version 1.6 release |
||||
|
||||
2011/06/18: |
||||
Fix for windows in miniwget.c |
||||
|
||||
2011/06/04: |
||||
display remote host in port mapping listing |
||||
|
||||
2011/06/03: |
||||
Fix in make install : there were missing headers |
||||
|
||||
2011/05/26: |
||||
Fix the socket leak in miniwget thanks to Richard Marsh. |
||||
Permit to add leaseduration in -a command. Display lease duration. |
||||
|
||||
2011/05/15: |
||||
Try both LinkLocal and SiteLocal multicast address for SSDP in IPv6 |
||||
|
||||
2011/05/09: |
||||
add a test in testminiwget.sh. |
||||
more error checking in miniwget.c |
||||
|
||||
2011/05/06: |
||||
Adding some tool to test and validate miniwget.c |
||||
simplified and debugged miniwget.c |
||||
|
||||
2011/04/11: |
||||
moving ReceiveData() to a receivedata.c file. |
||||
parsing presentation url |
||||
adding IGD v2 WANIPv6FirewallControl commands |
||||
|
||||
2011/04/10: |
||||
update of miniupnpcmodule.c |
||||
comments in miniwget.c, update in testminiwget |
||||
Adding errors codes from IGD v2 |
||||
new functions in upnpc.c for IGD v2 |
||||
|
||||
2011/04/09: |
||||
Support for litteral ip v6 address in miniwget |
||||
|
||||
2011/04/08: |
||||
Adding support for urn:schemas-upnp-org:service:WANIPv6FirewallControl:1 |
||||
Updating APIVERSION |
||||
Supporting IPV6 in upnpDiscover() |
||||
Adding a -6 option to upnpc command line tool |
||||
|
||||
2011/03/18: |
||||
miniwget/parseURL() : return an error when url param is null. |
||||
fixing GetListOfPortMappings() |
||||
|
||||
2011/03/14: |
||||
upnpDiscover() now reporting an error code. |
||||
improvements in comments. |
||||
|
||||
2011/03/11: |
||||
adding miniupnpcstrings.h.cmake and CMakeLists.txt files. |
||||
|
||||
2011/02/15: |
||||
Implementation of GetListOfPortMappings() |
||||
|
||||
2011/02/07: |
||||
updates to minixml to support character data starting with spaces |
||||
minixml now support CDATA |
||||
upnpreplyparse treats <NewPortListing> specificaly |
||||
change in simpleUPnPcommand to return the buffer (simplification) |
||||
|
||||
2011/02/06: |
||||
Added leaseDuration argument to AddPortMapping() |
||||
Starting to implement GetListOfPortMappings() |
||||
|
||||
2011/01/11: |
||||
updating wingenminiupnpcstrings.c |
||||
|
||||
2011/01/04: |
||||
improving updateminiupnpcstrings.sh |
||||
|
||||
VERSION 1.5 : released 2011/01/01 |
||||
|
||||
2010/12/21: |
||||
use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo |
||||
|
||||
2010/12/11: |
||||
Improvements on getHTTPResponse() code. |
||||
|
||||
2010/12/09: |
||||
new code for miniwget that handle Chunked transfer encoding |
||||
using getHTTPResponse() in SOAP call code |
||||
Adding MANIFEST.in for 'python setup.py bdist_rpm' |
||||
|
||||
2010/11/25: |
||||
changes to minissdpc.c to compile under Win32. |
||||
see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=729 |
||||
|
||||
2010/09/17: |
||||
Various improvement to Makefile from Michał Górny |
||||
|
||||
2010/08/05: |
||||
Adding the script "external-ip.sh" from Reuben Hawkins |
||||
|
||||
2010/06/09: |
||||
update to python module to match modification made on 2010/04/05 |
||||
update to Java test code to match modification made on 2010/04/05 |
||||
all UPNP_* function now return an error if the SOAP request failed |
||||
at HTTP level. |
||||
|
||||
2010/04/17: |
||||
Using GetBestRoute() under win32 in order to find the |
||||
right interface to use. |
||||
|
||||
2010/04/12: |
||||
Retrying with HTTP/1.1 if HTTP/1.0 failed. see |
||||
http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1703 |
||||
|
||||
2010/04/07: |
||||
avoid returning duplicates in upnpDiscover() |
||||
|
||||
2010/04/05: |
||||
Create a connecthostport.h/.c with connecthostport() function |
||||
and use it in miniwget and miniupnpc. |
||||
Use getnameinfo() instead of inet_ntop or inet_ntoa |
||||
Work to make miniupnpc IPV6 compatible... |
||||
Add java test code. |
||||
Big changes in order to support device having both WANIPConnection |
||||
and WANPPPConnection. |
||||
|
||||
2010/04/04: |
||||
Use getaddrinfo() instead of gethostbyname() in miniwget. |
||||
|
||||
2010/01/06: |
||||
#define _DARWIN_C_SOURCE for Mac OS X |
||||
|
||||
2009/12/19: |
||||
Improve MinGW32 build |
||||
|
||||
2009/12/11: |
||||
adding a MSVC9 project to build the static library and executable |
||||
|
||||
2009/12/10: |
||||
Fixing some compilation stuff for Windows/MinGW |
||||
|
||||
2009/12/07: |
||||
adaptations in Makefile and updateminiupnpcstring.sh for AmigaOS |
||||
some fixes for Windows when using virtual ethernet adapters (it is the |
||||
case with VMWare installed). |
||||
|
||||
2009/12/04: |
||||
some fixes for AmigaOS compilation |
||||
Changed HTTP version to HTTP/1.0 for Soap too (to prevent chunked |
||||
transfer encoding) |
||||
|
||||
2009/12/03: |
||||
updating printIDG and testigddescparse.c for debug. |
||||
modifications to compile under AmigaOS |
||||
adding a testminiwget program |
||||
Changed miniwget to advertise itself as HTTP/1.0 to prevent chunked |
||||
transfer encoding |
||||
|
||||
2009/11/26: |
||||
fixing updateminiupnpcstrings.sh to take into account |
||||
which command that does not return an error code. |
||||
|
||||
VERSION 1.4 : released 2009/10/30 |
||||
|
||||
2009/10/16: |
||||
using Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS in python module. |
||||
|
||||
2009/10/10: |
||||
Some fixes for compilation under Solaris |
||||
compilation fixes : http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1464 |
||||
|
||||
2009/09/21: |
||||
fixing the code to ignore EINTR during connect() calls. |
||||
|
||||
2009/08/07: |
||||
Set socket timeout for connect() |
||||
Some cleanup in miniwget.c |
||||
|
||||
2009/08/04: |
||||
remove multiple redirections with -d in upnpc.c |
||||
Print textual error code in upnpc.c |
||||
Ignore EINTR during the connect() and poll() calls. |
||||
|
||||
2009/07/29: |
||||
fix in updateminiupnpcstrings.sh if OS name contains "/" |
||||
Sending a correct value for MX: field in SSDP request |
||||
|
||||
2009/07/20: |
||||
Change the Makefile to compile under Mac OS X |
||||
Fixed a stackoverflow in getDevicesFromMiniSSDPD() |
||||
|
||||
2009/07/09: |
||||
Compile under Haiku |
||||
generate miniupnpcstrings.h.in from miniupnpcstrings.h |
||||
|
||||
2009/06/04: |
||||
patching to compile under CygWin and cross compile for minGW |
||||
|
||||
VERSION 1.3 : |
||||
|
||||
2009/04/17: |
||||
updating python module |
||||
Use strtoull() when using C99 |
||||
|
||||
2009/02/28: |
||||
Fixed miniwget.c for compiling under sun |
||||
|
||||
2008/12/18: |
||||
cleanup in Makefile (thanks to Paul de Weerd) |
||||
minissdpc.c : win32 compatibility |
||||
miniupnpc.c : changed xmlns prefix from 'm' to 'u' |
||||
Removed NDEBUG (using DEBUG) |
||||
|
||||
2008/10/14: |
||||
Added the ExternalHost argument to DeletePortMapping() |
||||
|
||||
2008/10/11: |
||||
Added the ExternalHost argument to AddPortMapping() |
||||
Put a correct User-Agent: header in HTTP requests. |
||||
|
||||
VERSION 1.2 : |
||||
|
||||
2008/10/07: |
||||
Update docs |
||||
|
||||
2008/09/25: |
||||
Integrated sameport patch from Dario Meloni : Added a "sameport" |
||||
argument to upnpDiscover(). |
||||
|
||||
2008/07/18: |
||||
small modif to make Clang happy :) |
||||
|
||||
2008/07/17: |
||||
#define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV... |
||||
|
||||
2008/07/14: |
||||
include declspec.h in installation (to /usr/include/miniupnpc) |
||||
|
||||
VERSION 1.1 : |
||||
|
||||
2008/07/04: |
||||
standard options for install/ln instead of gnu-specific stuff. |
||||
|
||||
2008/07/03: |
||||
now builds a .dll and .lib with win32. (mingw32) |
||||
|
||||
2008/04/28: |
||||
make install now install the binary of the upnpc tool |
||||
|
||||
2008/04/27: |
||||
added testupnpigd.py |
||||
added error strings for miniupnpc "internal" errors |
||||
improved python module error/exception reporting. |
||||
|
||||
2008/04/23: |
||||
Completely rewrite igd_desc_parse.c in order to be compatible with |
||||
Linksys WAG200G |
||||
Added testigddescparse |
||||
updated python module |
||||
|
||||
VERSION 1.0 : |
||||
|
||||
2008/02/21: |
||||
put some #ifdef DEBUG around DisplayNameValueList() |
||||
|
||||
2008/02/18: |
||||
Improved error reporting in upnpcommands.c |
||||
UPNP_GetStatusInfo() returns LastConnectionError |
||||
|
||||
2008/02/16: |
||||
better error handling in minisoap.c |
||||
improving display of "valid IGD found" in upnpc.c |
||||
|
||||
2008/02/03: |
||||
Fixing UPNP_GetValidIGD() |
||||
improved make install :) |
||||
|
||||
2007/12/22: |
||||
Adding upnperrors.c/h to provide a strupnperror() function |
||||
used to translate UPnP error codes to string. |
||||
|
||||
2007/12/19: |
||||
Fixing getDevicesFromMiniSSDPD() |
||||
improved error reporting of UPnP functions |
||||
|
||||
2007/12/18: |
||||
It is now possible to specify a different location for MiniSSDPd socket. |
||||
working with MiniSSDPd is now more efficient. |
||||
python module improved. |
||||
|
||||
2007/12/16: |
||||
improving error reporting |
||||
|
||||
2007/12/13: |
||||
Try to improve compatibility by using HTTP/1.0 instead of 1.1 and |
||||
XML a bit different for SOAP. |
||||
|
||||
2007/11/25: |
||||
fixed select() call for linux |
||||
|
||||
2007/11/15: |
||||
Added -fPIC to CFLAG for better shared library code. |
||||
|
||||
2007/11/02: |
||||
Fixed a potential socket leak in miniwget2() |
||||
|
||||
2007/10/16: |
||||
added a parameter to upnpDiscover() in order to allow the use of another |
||||
interface than the default multicast interface. |
||||
|
||||
2007/10/12: |
||||
Fixed the creation of symbolic link in Makefile |
||||
|
||||
2007/10/08: |
||||
Added man page |
||||
|
||||
2007/10/02: |
||||
fixed memory bug in GetUPNPUrls() |
||||
|
||||
2007/10/01: |
||||
fixes in the Makefile |
||||
Added UPNP_GetIGDFromUrl() and adapted the sample program accordingly. |
||||
Added SONAME in the shared library to please debian :) |
||||
fixed MS Windows compilation (minissdpd is not available under MS Windows). |
||||
|
||||
2007/09/25: |
||||
small change to Makefile to be able to install in a different location |
||||
(default is /usr) |
||||
|
||||
2007/09/24: |
||||
now compiling both shared and static library |
||||
|
||||
2007/09/19: |
||||
Cosmetic changes on upnpc.c |
||||
|
||||
2007/09/02: |
||||
adapting to new miniSSDPd (release version ?) |
||||
|
||||
2007/08/31: |
||||
Usage of miniSSDPd to skip discovery process. |
||||
|
||||
2007/08/27: |
||||
fixed python module to allow compilation with Python older than Python 2.4 |
||||
|
||||
2007/06/12: |
||||
Added a python module. |
||||
|
||||
2007/05/19: |
||||
Fixed compilation under MinGW |
||||
|
||||
2007/05/15: |
||||
fixed a memory leak in AddPortMapping() |
||||
Added testupnpreplyparse executable to check the parsing of |
||||
upnp soap messages |
||||
minixml now ignore namespace prefixes. |
||||
|
||||
2007/04/26: |
||||
upnpc now displays external ip address with -s or -l |
||||
|
||||
2007/04/11: |
||||
changed MINIUPNPC_URL_MAXSIZE to 128 to accomodate the "BT Voyager 210" |
||||
|
||||
2007/03/19: |
||||
cleanup in miniwget.c |
||||
|
||||
2007/03/01: |
||||
Small typo fix... |
||||
|
||||
2007/01/30: |
||||
Now parsing the HTTP header from SOAP responses in order to |
||||
get content-length value. |
||||
|
||||
2007/01/29: |
||||
Fixed the Soap Query to speedup the HTTP request. |
||||
added some Win32 DLL stuff... |
||||
|
||||
2007/01/27: |
||||
Fixed some WIN32 compatibility issues |
||||
|
||||
2006/12/14: |
||||
Added UPNPIGD_IsConnected() function in miniupnp.c/.h |
||||
Added UPNP_GetValidIGD() in miniupnp.c/.h |
||||
cleaned upnpc.c main(). now using UPNP_GetValidIGD() |
||||
|
||||
2006/12/07: |
||||
Version 1.0-RC1 released |
||||
|
||||
2006/12/03: |
||||
Minor changes to compile under SunOS/Solaris |
||||
|
||||
2006/11/30: |
||||
made a minixml parser validator program |
||||
updated minixml to handle attributes correctly |
||||
|
||||
2006/11/22: |
||||
Added a -r option to the upnpc sample thanks to Alexander Hubmann. |
||||
|
||||
2006/11/19: |
||||
Cleanup code to make it more ANSI C compliant |
||||
|
||||
2006/11/10: |
||||
detect and display local lan address. |
||||
|
||||
2006/11/04: |
||||
Packets and Bytes Sent/Received are now unsigned int. |
||||
|
||||
2006/11/01: |
||||
Bug fix thanks to Giuseppe D'Angelo |
||||
|
||||
2006/10/31: |
||||
C++ compatibility for .h files. |
||||
Added a way to get ip Address on the LAN used to reach the IGD. |
||||
|
||||
2006/10/25: |
||||
Added M-SEARCH to the services in the discovery process. |
||||
|
||||
2006/10/22: |
||||
updated the Makefile to use makedepend, added a "make install" |
||||
update Makefile |
||||
|
||||
2006/10/20: |
||||
fixing the description url parsing thanks to patch sent by |
||||
Wayne Dawe. |
||||
Fixed/translated some comments. |
||||
Implemented a better discover process, first looking |
||||
for IGD then for root devices (as some devices only reply to |
||||
M-SEARCH for root devices). |
||||
|
||||
2006/09/02: |
||||
added freeUPNPDevlist() function. |
||||
|
||||
2006/08/04: |
||||
More command line arguments checking |
||||
|
||||
2006/08/01: |
||||
Added the .bat file to compile under Win32 with minGW32 |
||||
|
||||
2006/07/31: |
||||
Fixed the rootdesc parser (igd_desc_parse.c) |
||||
|
||||
2006/07/20: |
||||
parseMSEARCHReply() is now returning the ST: line as well |
||||
starting changes to detect several UPnP devices on the network |
||||
|
||||
2006/07/19: |
||||
using GetCommonLinkProperties to get down/upload bitrate |
||||
|
||||
@ -1,27 +0,0 @@
|
||||
MiniUPnPc |
||||
Copyright (c) 2005-2015, Thomas BERNARD |
||||
All rights reserved. |
||||
|
||||
Redistribution and use in source and binary forms, with or without |
||||
modification, are permitted provided that the following conditions are met: |
||||
|
||||
* Redistributions of source code must retain the above copyright notice, |
||||
this list of conditions and the following disclaimer. |
||||
* Redistributions in binary form must reproduce the above copyright notice, |
||||
this list of conditions and the following disclaimer in the documentation |
||||
and/or other materials provided with the distribution. |
||||
* The name of the author may not be used to endorse or promote products |
||||
derived from this software without specific prior written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE |
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||||
POSSIBILITY OF SUCH DAMAGE. |
||||
|
||||
@ -1,4 +0,0 @@
|
||||
libminiupnpc binaries |
||||
====== |
||||
|
||||
This is a binary build of [libminiupnpc](http://miniupnp.free.fr) for certain architectures to faciliate easy building. Where possible the build flags were set for improved security by enabling options like stack protector (a.k.a. stack canary), ASLR support, etc. |
||||
@ -1,54 +0,0 @@
|
||||
/* $Id: codelength.h,v 1.5 2015/07/09 12:40:18 nanard Exp $ */ |
||||
/* Project : miniupnp
|
||||
* Author : Thomas BERNARD |
||||
* copyright (c) 2005-2015 Thomas Bernard |
||||
* This software is subjet to the conditions detailed in the |
||||
* provided LICENCE file. */ |
||||
#ifndef CODELENGTH_H_INCLUDED |
||||
#define CODELENGTH_H_INCLUDED |
||||
|
||||
/* Encode length by using 7bit per Byte :
|
||||
* Most significant bit of each byte specifies that the |
||||
* following byte is part of the code */ |
||||
|
||||
/* n : unsigned
|
||||
* p : unsigned char * |
||||
*/ |
||||
#define DECODELENGTH(n, p) n = 0; \ |
||||
do { n = (n << 7) | (*p & 0x7f); } \
|
||||
while((*(p++)&0x80) && (n<(1<<25))); |
||||
|
||||
/* n : unsigned
|
||||
* READ : function/macro to read one byte (unsigned char) |
||||
*/ |
||||
#define DECODELENGTH_READ(n, READ) \ |
||||
n = 0; \
|
||||
do { \
|
||||
unsigned char c; \
|
||||
READ(c); \
|
||||
n = (n << 7) | (c & 0x07f); \
|
||||
if(!(c&0x80)) break; \
|
||||
} while(n<(1<<25)); |
||||
|
||||
/* n : unsigned
|
||||
* p : unsigned char * |
||||
* p_limit : unsigned char * |
||||
*/ |
||||
#define DECODELENGTH_CHECKLIMIT(n, p, p_limit) \ |
||||
n = 0; \
|
||||
do { \
|
||||
if((p) >= (p_limit)) break; \
|
||||
n = (n << 7) | (*(p) & 0x7f); \
|
||||
} while((*((p)++)&0x80) && (n<(1<<25))); |
||||
|
||||
|
||||
/* n : unsigned
|
||||
* p : unsigned char * |
||||
*/ |
||||
#define CODELENGTH(n, p) if(n>=268435456) *(p++) = (n >> 28) | 0x80; \ |
||||
if(n>=2097152) *(p++) = (n >> 21) | 0x80; \
|
||||
if(n>=16384) *(p++) = (n >> 14) | 0x80; \
|
||||
if(n>=128) *(p++) = (n >> 7) | 0x80; \
|
||||
*(p++) = n & 0x7f; |
||||
|
||||
#endif /* CODELENGTH_H_INCLUDED */ |
||||
@ -1,18 +0,0 @@
|
||||
/* $Id: connecthostport.h,v 1.3 2012/09/27 15:42:10 nanard Exp $ */ |
||||
/* Project: miniupnp
|
||||
* http://miniupnp.free.fr/
|
||||
* Author: Thomas Bernard |
||||
* Copyright (c) 2010-2012 Thomas Bernard |
||||
* This software is subjects to the conditions detailed |
||||
* in the LICENCE file provided within this distribution */ |
||||
#ifndef CONNECTHOSTPORT_H_INCLUDED |
||||
#define CONNECTHOSTPORT_H_INCLUDED |
||||
|
||||
/* connecthostport()
|
||||
* return a socket connected (TCP) to the host and port |
||||
* or -1 in case of error */ |
||||
int connecthostport(const char * host, unsigned short port, |
||||
unsigned int scope_id); |
||||
|
||||
#endif |
||||
|
||||
@ -1,49 +0,0 @@
|
||||
/* $Id: igd_desc_parse.h,v 1.12 2014/11/17 17:19:13 nanard Exp $ */ |
||||
/* Project : miniupnp
|
||||
* http://miniupnp.free.fr/
|
||||
* Author : Thomas Bernard |
||||
* Copyright (c) 2005-2014 Thomas Bernard |
||||
* This software is subject to the conditions detailed in the |
||||
* LICENCE file provided in this distribution. |
||||
* */ |
||||
#ifndef IGD_DESC_PARSE_H_INCLUDED |
||||
#define IGD_DESC_PARSE_H_INCLUDED |
||||
|
||||
/* Structure to store the result of the parsing of UPnP
|
||||
* descriptions of Internet Gateway Devices */ |
||||
#define MINIUPNPC_URL_MAXSIZE (128) |
||||
struct IGDdatas_service { |
||||
char controlurl[MINIUPNPC_URL_MAXSIZE]; |
||||
char eventsuburl[MINIUPNPC_URL_MAXSIZE]; |
||||
char scpdurl[MINIUPNPC_URL_MAXSIZE]; |
||||
char servicetype[MINIUPNPC_URL_MAXSIZE]; |
||||
/*char devicetype[MINIUPNPC_URL_MAXSIZE];*/ |
||||
}; |
||||
|
||||
struct IGDdatas { |
||||
char cureltname[MINIUPNPC_URL_MAXSIZE]; |
||||
char urlbase[MINIUPNPC_URL_MAXSIZE]; |
||||
char presentationurl[MINIUPNPC_URL_MAXSIZE]; |
||||
int level; |
||||
/*int state;*/ |
||||
/* "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1" */ |
||||
struct IGDdatas_service CIF; |
||||
/* "urn:schemas-upnp-org:service:WANIPConnection:1"
|
||||
* "urn:schemas-upnp-org:service:WANPPPConnection:1" */ |
||||
struct IGDdatas_service first; |
||||
/* if both WANIPConnection and WANPPPConnection are present */ |
||||
struct IGDdatas_service second; |
||||
/* "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1" */ |
||||
struct IGDdatas_service IPv6FC; |
||||
/* tmp */ |
||||
struct IGDdatas_service tmp; |
||||
}; |
||||
|
||||
void IGDstartelt(void *, const char *, int); |
||||
void IGDendelt(void *, const char *, int); |
||||
void IGDdata(void *, const char *, int); |
||||
#ifdef DEBUG |
||||
void printIGD(struct IGDdatas *); |
||||
#endif /* DEBUG */ |
||||
|
||||
#endif /* IGD_DESC_PARSE_H_INCLUDED */ |
||||
@ -1,15 +0,0 @@
|
||||
/* $Id: minisoap.h,v 1.5 2012/09/27 15:42:10 nanard Exp $ */ |
||||
/* Project : miniupnp
|
||||
* Author : Thomas Bernard |
||||
* Copyright (c) 2005 Thomas Bernard |
||||
* This software is subject to the conditions detailed in the |
||||
* LICENCE file provided in this distribution. */ |
||||
#ifndef MINISOAP_H_INCLUDED |
||||
#define MINISOAP_H_INCLUDED |
||||
|
||||
/*int httpWrite(int, const char *, int, const char *);*/ |
||||
int soapPostSubmit(int, const char *, const char *, unsigned short, |
||||
const char *, const char *, const char *); |
||||
|
||||
#endif |
||||
|
||||
@ -1,15 +0,0 @@
|
||||
/* $Id: minissdpc.h,v 1.2 2012/09/27 15:42:10 nanard Exp $ */ |
||||
/* Project: miniupnp
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* Author: Thomas Bernard |
||||
* Copyright (c) 2005-2007 Thomas Bernard |
||||
* This software is subjects to the conditions detailed |
||||
* in the LICENCE file provided within this distribution */ |
||||
#ifndef MINISSDPC_H_INCLUDED |
||||
#define MINISSDPC_H_INCLUDED |
||||
|
||||
struct UPNPDev * |
||||
getDevicesFromMiniSSDPD(const char * devtype, const char * socketpath); |
||||
|
||||
#endif |
||||
|
||||
@ -1,154 +0,0 @@
|
||||
/* $Id: miniupnpc.h,v 1.42 2015/07/21 13:16:55 nanard Exp $ */ |
||||
/* Project: miniupnp
|
||||
* http://miniupnp.free.fr/
|
||||
* Author: Thomas Bernard |
||||
* Copyright (c) 2005-2015 Thomas Bernard |
||||
* This software is subjects to the conditions detailed |
||||
* in the LICENCE file provided within this distribution */ |
||||
#ifndef MINIUPNPC_H_INCLUDED |
||||
#define MINIUPNPC_H_INCLUDED |
||||
|
||||
#include "miniupnpc_declspec.h" |
||||
#include "igd_desc_parse.h" |
||||
|
||||
/* error codes : */ |
||||
#define UPNPDISCOVER_SUCCESS (0) |
||||
#define UPNPDISCOVER_UNKNOWN_ERROR (-1) |
||||
#define UPNPDISCOVER_SOCKET_ERROR (-101) |
||||
#define UPNPDISCOVER_MEMORY_ERROR (-102) |
||||
|
||||
/* versions : */ |
||||
#define MINIUPNPC_VERSION "1.9.20150721" |
||||
#define MINIUPNPC_API_VERSION 13 |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/* Structures definitions : */ |
||||
struct UPNParg { const char * elt; const char * val; }; |
||||
|
||||
char * |
||||
simpleUPnPcommand(int, const char *, const char *, |
||||
const char *, struct UPNParg *, |
||||
int *); |
||||
|
||||
struct UPNPDev { |
||||
struct UPNPDev * pNext; |
||||
char * descURL; |
||||
char * st; |
||||
unsigned int scope_id; |
||||
char buffer[2]; |
||||
}; |
||||
|
||||
/* upnpDiscover()
|
||||
* discover UPnP devices on the network. |
||||
* The discovered devices are returned as a chained list. |
||||
* It is up to the caller to free the list with freeUPNPDevlist(). |
||||
* delay (in millisecond) is the maximum time for waiting any device |
||||
* response. |
||||
* If available, device list will be obtained from MiniSSDPd. |
||||
* Default path for minissdpd socket will be used if minissdpdsock argument |
||||
* is NULL. |
||||
* If multicastif is not NULL, it will be used instead of the default |
||||
* multicast interface for sending SSDP discover packets. |
||||
* If sameport is not null, SSDP packets will be sent from the source port |
||||
* 1900 (same as destination port) otherwise system assign a source port. |
||||
* "searchalltypes" parameter is useful when searching several types, |
||||
* if 0, the discovery will stop with the first type returning results. */ |
||||
MINIUPNP_LIBSPEC struct UPNPDev * |
||||
upnpDiscover(int delay, const char * multicastif, |
||||
const char * minissdpdsock, int sameport, |
||||
int ipv6, |
||||
int * error); |
||||
|
||||
MINIUPNP_LIBSPEC struct UPNPDev * |
||||
upnpDiscoverAll(int delay, const char * multicastif, |
||||
const char * minissdpdsock, int sameport, |
||||
int ipv6, |
||||
int * error); |
||||
|
||||
MINIUPNP_LIBSPEC struct UPNPDev * |
||||
upnpDiscoverDevice(const char * device, int delay, const char * multicastif, |
||||
const char * minissdpdsock, int sameport, |
||||
int ipv6, |
||||
int * error); |
||||
|
||||
MINIUPNP_LIBSPEC struct UPNPDev * |
||||
upnpDiscoverDevices(const char * const deviceTypes[], |
||||
int delay, const char * multicastif, |
||||
const char * minissdpdsock, int sameport, |
||||
int ipv6, |
||||
int * error, |
||||
int searchalltypes); |
||||
|
||||
/* freeUPNPDevlist()
|
||||
* free list returned by upnpDiscover() */ |
||||
MINIUPNP_LIBSPEC void freeUPNPDevlist(struct UPNPDev * devlist); |
||||
|
||||
/* parserootdesc() :
|
||||
* parse root XML description of a UPnP device and fill the IGDdatas |
||||
* structure. */ |
||||
MINIUPNP_LIBSPEC void parserootdesc(const char *, int, struct IGDdatas *); |
||||
|
||||
/* structure used to get fast access to urls
|
||||
* controlURL: controlURL of the WANIPConnection |
||||
* ipcondescURL: url of the description of the WANIPConnection |
||||
* controlURL_CIF: controlURL of the WANCommonInterfaceConfig |
||||
* controlURL_6FC: controlURL of the WANIPv6FirewallControl |
||||
*/ |
||||
struct UPNPUrls { |
||||
char * controlURL; |
||||
char * ipcondescURL; |
||||
char * controlURL_CIF; |
||||
char * controlURL_6FC; |
||||
char * rootdescURL; |
||||
}; |
||||
|
||||
/* UPNP_GetValidIGD() :
|
||||
* return values : |
||||
* 0 = NO IGD found |
||||
* 1 = A valid connected IGD has been found |
||||
* 2 = A valid IGD has been found but it reported as |
||||
* not connected |
||||
* 3 = an UPnP device has been found but was not recognized as an IGD |
||||
* |
||||
* In any non zero return case, the urls and data structures |
||||
* passed as parameters are set. Donc forget to call FreeUPNPUrls(urls) to |
||||
* free allocated memory. |
||||
*/ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetValidIGD(struct UPNPDev * devlist, |
||||
struct UPNPUrls * urls, |
||||
struct IGDdatas * data, |
||||
char * lanaddr, int lanaddrlen); |
||||
|
||||
/* UPNP_GetIGDFromUrl()
|
||||
* Used when skipping the discovery process. |
||||
* When succeding, urls, data, and lanaddr arguments are set. |
||||
* return value : |
||||
* 0 - Not ok |
||||
* 1 - OK */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetIGDFromUrl(const char * rootdescurl, |
||||
struct UPNPUrls * urls, |
||||
struct IGDdatas * data, |
||||
char * lanaddr, int lanaddrlen); |
||||
|
||||
MINIUPNP_LIBSPEC void |
||||
GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, |
||||
const char *, unsigned int); |
||||
|
||||
MINIUPNP_LIBSPEC void |
||||
FreeUPNPUrls(struct UPNPUrls *); |
||||
|
||||
/* return 0 or 1 */ |
||||
MINIUPNP_LIBSPEC int UPNPIGD_IsConnected(struct UPNPUrls *, struct IGDdatas *); |
||||
|
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
@ -1,21 +0,0 @@
|
||||
#ifndef MINIUPNPC_DECLSPEC_H_INCLUDED |
||||
#define MINIUPNPC_DECLSPEC_H_INCLUDED |
||||
|
||||
#if defined(_WIN32) && !defined(MINIUPNP_STATICLIB) |
||||
/* for windows dll */ |
||||
#ifdef MINIUPNP_EXPORTS |
||||
#define MINIUPNP_LIBSPEC __declspec(dllexport) |
||||
#else |
||||
#define MINIUPNP_LIBSPEC __declspec(dllimport) |
||||
#endif |
||||
#else |
||||
#if defined(__GNUC__) && __GNUC__ >= 4 |
||||
/* fix dynlib for OS X 10.9.2 and Apple LLVM version 5.0 */ |
||||
#define MINIUPNP_LIBSPEC __attribute__ ((visibility ("default"))) |
||||
#else |
||||
#define MINIUPNP_LIBSPEC |
||||
#endif |
||||
#endif |
||||
|
||||
#endif /* MINIUPNPC_DECLSPEC_H_INCLUDED */ |
||||
|
||||
@ -1,23 +0,0 @@
|
||||
/* $Id: miniupnpcstrings.h.in,v 1.6 2014/11/04 22:31:55 nanard Exp $ */ |
||||
/* Project: miniupnp
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* Author: Thomas Bernard |
||||
* Copyright (c) 2005-2014 Thomas Bernard |
||||
* This software is subjects to the conditions detailed |
||||
* in the LICENCE file provided within this distribution */ |
||||
#ifndef MINIUPNPCSTRINGS_H_INCLUDED |
||||
#define MINIUPNPCSTRINGS_H_INCLUDED |
||||
|
||||
#define OS_STRING "Darwin/14.4.0" |
||||
#define MINIUPNPC_VERSION_STRING "1.9" |
||||
|
||||
#if 0 |
||||
/* according to "UPnP Device Architecture 1.0" */ |
||||
#define UPNP_VERSION_STRING "UPnP/1.0" |
||||
#else |
||||
/* according to "UPnP Device Architecture 1.1" */ |
||||
#define UPNP_VERSION_STRING "UPnP/1.1" |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
@ -1,19 +0,0 @@
|
||||
/* $Id: miniupnpctypes.h,v 1.2 2012/09/27 15:42:10 nanard Exp $ */ |
||||
/* Miniupnp project : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org
|
||||
* Author : Thomas Bernard |
||||
* Copyright (c) 2011 Thomas Bernard |
||||
* This software is subject to the conditions detailed in the |
||||
* LICENCE file provided within this distribution */ |
||||
#ifndef MINIUPNPCTYPES_H_INCLUDED |
||||
#define MINIUPNPCTYPES_H_INCLUDED |
||||
|
||||
#if (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L) |
||||
#define UNSIGNED_INTEGER unsigned long long |
||||
#define STRTOUI strtoull |
||||
#else |
||||
#define UNSIGNED_INTEGER unsigned int |
||||
#define STRTOUI strtoul |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
@ -1,30 +0,0 @@
|
||||
/* $Id: miniwget.h,v 1.10 2015/07/21 13:16:55 nanard Exp $ */ |
||||
/* Project : miniupnp
|
||||
* Author : Thomas Bernard |
||||
* Copyright (c) 2005-2015 Thomas Bernard |
||||
* This software is subject to the conditions detailed in the |
||||
* LICENCE file provided in this distribution. |
||||
* */ |
||||
#ifndef MINIWGET_H_INCLUDED |
||||
#define MINIWGET_H_INCLUDED |
||||
|
||||
#include "miniupnpc_declspec.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
MINIUPNP_LIBSPEC void * getHTTPResponse(int s, int * size); |
||||
|
||||
MINIUPNP_LIBSPEC void * miniwget(const char *, int *, unsigned int); |
||||
|
||||
MINIUPNP_LIBSPEC void * miniwget_getaddr(const char *, int *, char *, int, unsigned int); |
||||
|
||||
int parseURL(const char *, char *, unsigned short *, char * *, unsigned int *); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
@ -1,37 +0,0 @@
|
||||
/* $Id: minixml.h,v 1.7 2012/09/27 15:42:10 nanard Exp $ */ |
||||
/* minimal xml parser
|
||||
* |
||||
* Project : miniupnp |
||||
* Website : http://miniupnp.free.fr/
|
||||
* Author : Thomas Bernard |
||||
* Copyright (c) 2005 Thomas Bernard |
||||
* This software is subject to the conditions detailed in the |
||||
* LICENCE file provided in this distribution. |
||||
* */ |
||||
#ifndef MINIXML_H_INCLUDED |
||||
#define MINIXML_H_INCLUDED |
||||
#define IS_WHITE_SPACE(c) ((c==' ') || (c=='\t') || (c=='\r') || (c=='\n')) |
||||
|
||||
/* if a callback function pointer is set to NULL,
|
||||
* the function is not called */ |
||||
struct xmlparser { |
||||
const char *xmlstart; |
||||
const char *xmlend; |
||||
const char *xml; /* pointer to current character */ |
||||
int xmlsize; |
||||
void * data; |
||||
void (*starteltfunc) (void *, const char *, int); |
||||
void (*endeltfunc) (void *, const char *, int); |
||||
void (*datafunc) (void *, const char *, int); |
||||
void (*attfunc) (void *, const char *, int, const char *, int); |
||||
}; |
||||
|
||||
/* parsexml()
|
||||
* the xmlparser structure must be initialized before the call |
||||
* the following structure members have to be initialized : |
||||
* xmlstart, xmlsize, data, *func |
||||
* xml is for internal usage, xmlend is computed automatically */ |
||||
void parsexml(struct xmlparser *); |
||||
|
||||
#endif |
||||
|
||||
@ -1,65 +0,0 @@
|
||||
/* $Id: portlistingparse.h,v 1.11 2015/07/21 13:16:55 nanard Exp $ */ |
||||
/* MiniUPnP project
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* (c) 2011-2015 Thomas Bernard |
||||
* This software is subject to the conditions detailed |
||||
* in the LICENCE file provided within the distribution */ |
||||
#ifndef PORTLISTINGPARSE_H_INCLUDED |
||||
#define PORTLISTINGPARSE_H_INCLUDED |
||||
|
||||
#include "miniupnpc_declspec.h" |
||||
/* for the definition of UNSIGNED_INTEGER */ |
||||
#include "miniupnpctypes.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/* sample of PortMappingEntry :
|
||||
<p:PortMappingEntry> |
||||
<p:NewRemoteHost>202.233.2.1</p:NewRemoteHost> |
||||
<p:NewExternalPort>2345</p:NewExternalPort> |
||||
<p:NewProtocol>TCP</p:NewProtocol> |
||||
<p:NewInternalPort>2345</p:NewInternalPort> |
||||
<p:NewInternalClient>192.168.1.137</p:NewInternalClient> |
||||
<p:NewEnabled>1</p:NewEnabled> |
||||
<p:NewDescription>dooom</p:NewDescription> |
||||
<p:NewLeaseTime>345</p:NewLeaseTime> |
||||
</p:PortMappingEntry> |
||||
*/ |
||||
typedef enum { PortMappingEltNone, |
||||
PortMappingEntry, NewRemoteHost, |
||||
NewExternalPort, NewProtocol, |
||||
NewInternalPort, NewInternalClient, |
||||
NewEnabled, NewDescription, |
||||
NewLeaseTime } portMappingElt; |
||||
|
||||
struct PortMapping { |
||||
struct PortMapping * l_next; /* list next element */ |
||||
UNSIGNED_INTEGER leaseTime; |
||||
unsigned short externalPort; |
||||
unsigned short internalPort; |
||||
char remoteHost[64]; |
||||
char internalClient[64]; |
||||
char description[64]; |
||||
char protocol[4]; |
||||
unsigned char enabled; |
||||
}; |
||||
|
||||
struct PortMappingParserData { |
||||
struct PortMapping * l_head; /* list head */ |
||||
portMappingElt curelt; |
||||
}; |
||||
|
||||
MINIUPNP_LIBSPEC void |
||||
ParsePortListing(const char * buffer, int bufsize, |
||||
struct PortMappingParserData * pdata); |
||||
|
||||
MINIUPNP_LIBSPEC void |
||||
FreePortListing(struct PortMappingParserData * pdata); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
||||
@ -1,19 +0,0 @@
|
||||
/* $Id: receivedata.h,v 1.4 2012/09/27 15:42:10 nanard Exp $ */ |
||||
/* Project: miniupnp
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* Author: Thomas Bernard |
||||
* Copyright (c) 2011-2012 Thomas Bernard |
||||
* This software is subjects to the conditions detailed |
||||
* in the LICENCE file provided within this distribution */ |
||||
#ifndef RECEIVEDATA_H_INCLUDED |
||||
#define RECEIVEDATA_H_INCLUDED |
||||
|
||||
/* Reads data from the specified socket.
|
||||
* Returns the number of bytes read if successful, zero if no bytes were |
||||
* read or if we timed out. Returns negative if there was an error. */ |
||||
int receivedata(int socket, |
||||
char * data, int length, |
||||
int timeout, unsigned int * scope_id); |
||||
|
||||
#endif |
||||
|
||||
@ -1,348 +0,0 @@
|
||||
/* $Id: upnpcommands.h,v 1.31 2015/07/21 13:16:55 nanard Exp $ */ |
||||
/* Miniupnp project : http://miniupnp.free.fr/
|
||||
* Author : Thomas Bernard |
||||
* Copyright (c) 2005-2015 Thomas Bernard |
||||
* This software is subject to the conditions detailed in the |
||||
* LICENCE file provided within this distribution */ |
||||
#ifndef UPNPCOMMANDS_H_INCLUDED |
||||
#define UPNPCOMMANDS_H_INCLUDED |
||||
|
||||
#include "upnpreplyparse.h" |
||||
#include "portlistingparse.h" |
||||
#include "miniupnpc_declspec.h" |
||||
#include "miniupnpctypes.h" |
||||
|
||||
/* MiniUPnPc return codes : */ |
||||
#define UPNPCOMMAND_SUCCESS (0) |
||||
#define UPNPCOMMAND_UNKNOWN_ERROR (-1) |
||||
#define UPNPCOMMAND_INVALID_ARGS (-2) |
||||
#define UPNPCOMMAND_HTTP_ERROR (-3) |
||||
#define UPNPCOMMAND_INVALID_RESPONSE (-4) |
||||
#define UPNPCOMMAND_MEM_ALLOC_ERROR (-5) |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
MINIUPNP_LIBSPEC UNSIGNED_INTEGER |
||||
UPNP_GetTotalBytesSent(const char * controlURL, |
||||
const char * servicetype); |
||||
|
||||
MINIUPNP_LIBSPEC UNSIGNED_INTEGER |
||||
UPNP_GetTotalBytesReceived(const char * controlURL, |
||||
const char * servicetype); |
||||
|
||||
MINIUPNP_LIBSPEC UNSIGNED_INTEGER |
||||
UPNP_GetTotalPacketsSent(const char * controlURL, |
||||
const char * servicetype); |
||||
|
||||
MINIUPNP_LIBSPEC UNSIGNED_INTEGER |
||||
UPNP_GetTotalPacketsReceived(const char * controlURL, |
||||
const char * servicetype); |
||||
|
||||
/* UPNP_GetStatusInfo()
|
||||
* status and lastconnerror are 64 byte buffers |
||||
* Return values : |
||||
* UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR |
||||
* or a UPnP Error code */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetStatusInfo(const char * controlURL, |
||||
const char * servicetype, |
||||
char * status, |
||||
unsigned int * uptime, |
||||
char * lastconnerror); |
||||
|
||||
/* UPNP_GetConnectionTypeInfo()
|
||||
* argument connectionType is a 64 character buffer |
||||
* Return Values : |
||||
* UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR |
||||
* or a UPnP Error code */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetConnectionTypeInfo(const char * controlURL, |
||||
const char * servicetype, |
||||
char * connectionType); |
||||
|
||||
/* UPNP_GetExternalIPAddress() call the corresponding UPNP method.
|
||||
* if the third arg is not null the value is copied to it. |
||||
* at least 16 bytes must be available |
||||
* |
||||
* Return values : |
||||
* 0 : SUCCESS |
||||
* NON ZERO : ERROR Either an UPnP error code or an unknown error. |
||||
* |
||||
* possible UPnP Errors : |
||||
* 402 Invalid Args - See UPnP Device Architecture section on Control. |
||||
* 501 Action Failed - See UPnP Device Architecture section on Control. */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetExternalIPAddress(const char * controlURL, |
||||
const char * servicetype, |
||||
char * extIpAdd); |
||||
|
||||
/* UPNP_GetLinkLayerMaxBitRates()
|
||||
* call WANCommonInterfaceConfig:1#GetCommonLinkProperties |
||||
* |
||||
* return values : |
||||
* UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR |
||||
* or a UPnP Error Code. */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetLinkLayerMaxBitRates(const char* controlURL, |
||||
const char* servicetype, |
||||
unsigned int * bitrateDown, |
||||
unsigned int * bitrateUp); |
||||
|
||||
/* UPNP_AddPortMapping()
|
||||
* if desc is NULL, it will be defaulted to "libminiupnpc" |
||||
* remoteHost is usually NULL because IGD don't support it. |
||||
* |
||||
* Return values : |
||||
* 0 : SUCCESS |
||||
* NON ZERO : ERROR. Either an UPnP error code or an unknown error. |
||||
* |
||||
* List of possible UPnP errors for AddPortMapping : |
||||
* errorCode errorDescription (short) - Description (long) |
||||
* 402 Invalid Args - See UPnP Device Architecture section on Control. |
||||
* 501 Action Failed - See UPnP Device Architecture section on Control. |
||||
* 606 Action not authorized - The action requested REQUIRES authorization and |
||||
* the sender was not authorized. |
||||
* 715 WildCardNotPermittedInSrcIP - The source IP address cannot be |
||||
* wild-carded |
||||
* 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded |
||||
* 718 ConflictInMappingEntry - The port mapping entry specified conflicts |
||||
* with a mapping assigned previously to another client |
||||
* 724 SamePortValuesRequired - Internal and External port values |
||||
* must be the same |
||||
* 725 OnlyPermanentLeasesSupported - The NAT implementation only supports |
||||
* permanent lease times on port mappings |
||||
* 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard |
||||
* and cannot be a specific IP address or DNS name |
||||
* 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and |
||||
* cannot be a specific port value |
||||
* 728 NoPortMapsAvailable - There are not enough free ports available to |
||||
* complete port mapping. |
||||
* 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed |
||||
* due to conflict with other mechanisms. |
||||
* 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded |
||||
*/ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_AddPortMapping(const char * controlURL, const char * servicetype, |
||||
const char * extPort, |
||||
const char * inPort, |
||||
const char * inClient, |
||||
const char * desc, |
||||
const char * proto, |
||||
const char * remoteHost, |
||||
const char * leaseDuration); |
||||
|
||||
/* UPNP_AddAnyPortMapping()
|
||||
* if desc is NULL, it will be defaulted to "libminiupnpc" |
||||
* remoteHost is usually NULL because IGD don't support it. |
||||
* |
||||
* Return values : |
||||
* 0 : SUCCESS |
||||
* NON ZERO : ERROR. Either an UPnP error code or an unknown error. |
||||
* |
||||
* List of possible UPnP errors for AddPortMapping : |
||||
* errorCode errorDescription (short) - Description (long) |
||||
* 402 Invalid Args - See UPnP Device Architecture section on Control. |
||||
* 501 Action Failed - See UPnP Device Architecture section on Control. |
||||
* 606 Action not authorized - The action requested REQUIRES authorization and |
||||
* the sender was not authorized. |
||||
* 715 WildCardNotPermittedInSrcIP - The source IP address cannot be |
||||
* wild-carded |
||||
* 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded |
||||
* 728 NoPortMapsAvailable - There are not enough free ports available to |
||||
* complete port mapping. |
||||
* 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed |
||||
* due to conflict with other mechanisms. |
||||
* 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded |
||||
*/ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype, |
||||
const char * extPort, |
||||
const char * inPort, |
||||
const char * inClient, |
||||
const char * desc, |
||||
const char * proto, |
||||
const char * remoteHost, |
||||
const char * leaseDuration, |
||||
char * reservedPort); |
||||
|
||||
/* UPNP_DeletePortMapping()
|
||||
* Use same argument values as what was used for AddPortMapping(). |
||||
* remoteHost is usually NULL because IGD don't support it. |
||||
* Return Values : |
||||
* 0 : SUCCESS |
||||
* NON ZERO : error. Either an UPnP error code or an undefined error. |
||||
* |
||||
* List of possible UPnP errors for DeletePortMapping : |
||||
* 402 Invalid Args - See UPnP Device Architecture section on Control. |
||||
* 606 Action not authorized - The action requested REQUIRES authorization |
||||
* and the sender was not authorized. |
||||
* 714 NoSuchEntryInArray - The specified value does not exist in the array */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_DeletePortMapping(const char * controlURL, const char * servicetype, |
||||
const char * extPort, const char * proto, |
||||
const char * remoteHost); |
||||
|
||||
/* UPNP_DeletePortRangeMapping()
|
||||
* Use same argument values as what was used for AddPortMapping(). |
||||
* remoteHost is usually NULL because IGD don't support it. |
||||
* Return Values : |
||||
* 0 : SUCCESS |
||||
* NON ZERO : error. Either an UPnP error code or an undefined error. |
||||
* |
||||
* List of possible UPnP errors for DeletePortMapping : |
||||
* 606 Action not authorized - The action requested REQUIRES authorization |
||||
* and the sender was not authorized. |
||||
* 730 PortMappingNotFound - This error message is returned if no port |
||||
* mapping is found in the specified range. |
||||
* 733 InconsistentParameters - NewStartPort and NewEndPort values are not consistent. */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype, |
||||
const char * extPortStart, const char * extPortEnd, |
||||
const char * proto, |
||||
const char * manage); |
||||
|
||||
/* UPNP_GetPortMappingNumberOfEntries()
|
||||
* not supported by all routers */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetPortMappingNumberOfEntries(const char* controlURL, |
||||
const char* servicetype, |
||||
unsigned int * num); |
||||
|
||||
/* UPNP_GetSpecificPortMappingEntry()
|
||||
* retrieves an existing port mapping |
||||
* params : |
||||
* in extPort |
||||
* in proto |
||||
* in remoteHost |
||||
* out intClient (16 bytes) |
||||
* out intPort (6 bytes) |
||||
* out desc (80 bytes) |
||||
* out enabled (4 bytes) |
||||
* out leaseDuration (16 bytes) |
||||
* |
||||
* return value : |
||||
* UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR |
||||
* or a UPnP Error Code. |
||||
* |
||||
* List of possible UPnP errors for _GetSpecificPortMappingEntry : |
||||
* 402 Invalid Args - See UPnP Device Architecture section on Control. |
||||
* 501 Action Failed - See UPnP Device Architecture section on Control. |
||||
* 606 Action not authorized - The action requested REQUIRES authorization |
||||
* and the sender was not authorized. |
||||
* 714 NoSuchEntryInArray - The specified value does not exist in the array. |
||||
*/ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetSpecificPortMappingEntry(const char * controlURL, |
||||
const char * servicetype, |
||||
const char * extPort, |
||||
const char * proto, |
||||
const char * remoteHost, |
||||
char * intClient, |
||||
char * intPort, |
||||
char * desc, |
||||
char * enabled, |
||||
char * leaseDuration); |
||||
|
||||
/* UPNP_GetGenericPortMappingEntry()
|
||||
* params : |
||||
* in index |
||||
* out extPort (6 bytes) |
||||
* out intClient (16 bytes) |
||||
* out intPort (6 bytes) |
||||
* out protocol (4 bytes) |
||||
* out desc (80 bytes) |
||||
* out enabled (4 bytes) |
||||
* out rHost (64 bytes) |
||||
* out duration (16 bytes) |
||||
* |
||||
* return value : |
||||
* UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR |
||||
* or a UPnP Error Code. |
||||
* |
||||
* Possible UPNP Error codes : |
||||
* 402 Invalid Args - See UPnP Device Architecture section on Control. |
||||
* 606 Action not authorized - The action requested REQUIRES authorization |
||||
* and the sender was not authorized. |
||||
* 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds |
||||
*/ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetGenericPortMappingEntry(const char * controlURL, |
||||
const char * servicetype, |
||||
const char * index, |
||||
char * extPort, |
||||
char * intClient, |
||||
char * intPort, |
||||
char * protocol, |
||||
char * desc, |
||||
char * enabled, |
||||
char * rHost, |
||||
char * duration); |
||||
|
||||
/* UPNP_GetListOfPortMappings() Available in IGD v2
|
||||
* |
||||
* |
||||
* Possible UPNP Error codes : |
||||
* 606 Action not Authorized |
||||
* 730 PortMappingNotFound - no port mapping is found in the specified range. |
||||
* 733 InconsistantParameters - NewStartPort and NewEndPort values are not |
||||
* consistent. |
||||
*/ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetListOfPortMappings(const char * controlURL, |
||||
const char * servicetype, |
||||
const char * startPort, |
||||
const char * endPort, |
||||
const char * protocol, |
||||
const char * numberOfPorts, |
||||
struct PortMappingParserData * data); |
||||
|
||||
/* IGD:2, functions for service WANIPv6FirewallControl:1 */ |
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetFirewallStatus(const char * controlURL, |
||||
const char * servicetype, |
||||
int * firewallEnabled, |
||||
int * inboundPinholeAllowed); |
||||
|
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype, |
||||
const char * remoteHost, |
||||
const char * remotePort, |
||||
const char * intClient, |
||||
const char * intPort, |
||||
const char * proto, |
||||
int * opTimeout); |
||||
|
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_AddPinhole(const char * controlURL, const char * servicetype, |
||||
const char * remoteHost, |
||||
const char * remotePort, |
||||
const char * intClient, |
||||
const char * intPort, |
||||
const char * proto, |
||||
const char * leaseTime, |
||||
char * uniqueID); |
||||
|
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_UpdatePinhole(const char * controlURL, const char * servicetype, |
||||
const char * uniqueID, |
||||
const char * leaseTime); |
||||
|
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID); |
||||
|
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype, |
||||
const char * uniqueID, int * isWorking); |
||||
|
||||
MINIUPNP_LIBSPEC int |
||||
UPNP_GetPinholePackets(const char * controlURL, const char * servicetype, |
||||
const char * uniqueID, int * packets); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
@ -1,26 +0,0 @@
|
||||
/* $Id: upnperrors.h,v 1.6 2015/07/21 13:16:55 nanard Exp $ */ |
||||
/* (c) 2007-2015 Thomas Bernard
|
||||
* All rights reserved. |
||||
* MiniUPnP Project. |
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* This software is subjet to the conditions detailed in the |
||||
* provided LICENCE file. */ |
||||
#ifndef UPNPERRORS_H_INCLUDED |
||||
#define UPNPERRORS_H_INCLUDED |
||||
|
||||
#include "miniupnpc_declspec.h" |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
/* strupnperror()
|
||||
* Return a string description of the UPnP error code |
||||
* or NULL for undefinded errors */ |
||||
MINIUPNP_LIBSPEC const char * strupnperror(int err); |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
||||
@ -1,63 +0,0 @@
|
||||
/* $Id: upnpreplyparse.h,v 1.19 2014/10/27 16:33:19 nanard Exp $ */ |
||||
/* MiniUPnP project
|
||||
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
||||
* (c) 2006-2013 Thomas Bernard |
||||
* This software is subject to the conditions detailed |
||||
* in the LICENCE file provided within the distribution */ |
||||
|
||||
#ifndef UPNPREPLYPARSE_H_INCLUDED |
||||
#define UPNPREPLYPARSE_H_INCLUDED |
||||
|
||||
#ifdef __cplusplus |
||||
extern "C" { |
||||
#endif |
||||
|
||||
struct NameValue { |
||||
struct NameValue * l_next; |
||||
char name[64]; |
||||
char value[128]; |
||||
}; |
||||
|
||||
struct NameValueParserData { |
||||
struct NameValue * l_head; |
||||
char curelt[64]; |
||||
char * portListing; |
||||
int portListingLength; |
||||
int topelt; |
||||
const char * cdata; |
||||
int cdatalen; |
||||
}; |
||||
|
||||
/* ParseNameValue() */ |
||||
void |
||||
ParseNameValue(const char * buffer, int bufsize, |
||||
struct NameValueParserData * data); |
||||
|
||||
/* ClearNameValueList() */ |
||||
void |
||||
ClearNameValueList(struct NameValueParserData * pdata); |
||||
|
||||
/* GetValueFromNameValueList() */ |
||||
char * |
||||
GetValueFromNameValueList(struct NameValueParserData * pdata, |
||||
const char * Name); |
||||
|
||||
#if 0 |
||||
/* GetValueFromNameValueListIgnoreNS() */ |
||||
char * |
||||
GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata, |
||||
const char * Name); |
||||
#endif |
||||
|
||||
/* DisplayNameValueList() */ |
||||
#ifdef DEBUG |
||||
void |
||||
DisplayNameValueList(char * buffer, int bufsize); |
||||
#endif |
||||
|
||||
#ifdef __cplusplus |
||||
} |
||||
#endif |
||||
|
||||
#endif |
||||
|
||||
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue