1$Id: Changelog.txt,v 1.202 2014/11/17 19:10:28 nanard Exp $ 2miniUPnP client Changelog. 3 42014/11/17: 5 search all : 6 upnpDiscoverDevices() / upnpDiscoverAll() functions 7 listdevices executable 8 increment API_VERSION to 12 9 validate igd_desc_parse 10 112014/11/13: 12 increment API_VERSION to 11 13 142014/11/05: 15 simplified function GetUPNPUrls() 16 172014/09/11: 18 use remoteHost arg of DeletePortMapping 19 202014/09/06: 21 Fix python3 build 22 232014/07/01: 24 Fix parsing of IGD2 root descriptions 25 262014/06/10: 27 rename LIBSPEC to MINIUPNP_LIBSPEC 28 292014/05/15: 30 Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange 31 322014/02/05: 33 handle EINPROGRESS after connect() 34 352014/02/03: 36 minixml now handle XML comments 37 38VERSION 1.9 : released 2014/01/31 39 402014/01/31: 41 added argument remoteHost to UPNP_GetSpecificPortMappingEntry() 42 increment API_VERSION to 10 43 442013/12/09: 45 --help and -h arguments in upnpc.c 46 472013/10/07: 48 fixed potential buffer overrun in miniwget.c 49 Modified UPNP_GetValidIGD() to check for ExternalIpAddress 50 512013/08/01: 52 define MAXHOSTNAMELEN if not already done 53 542013/06/06: 55 update upnpreplyparse to allow larger values (128 chars instead of 64) 56 572013/05/14: 58 Update upnpreplyparse to take into account "empty" elements 59 validate upnpreplyparse.c code with "make check" 60 612013/05/03: 62 Fix Solaris build thanks to Maciej Ma��ecki 63 642013/04/27: 65 Fix testminiwget.sh for BSD 66 672013/03/23: 68 Fixed Makefile for *BSD 69 702013/03/11: 71 Update Makefile to use JNAerator version 0.11 72 732013/02/11: 74 Fix testminiwget.sh for use with dash 75 Use $(DESTDIR) in Makefile 76 77VERSION 1.8 : released 2013/02/06 78 792012/10/16: 80 fix testminiwget with no IPv6 support 81 822012/09/27: 83 Rename all include guards to not clash with C99 84 (7.1.3 Reserved identifiers). 85 862012/08/30: 87 Added -e option to upnpc program (set description for port mappings) 88 892012/08/29: 90 Python 3 support (thanks to Christopher Foo) 91 922012/08/11: 93 Fix a memory link in UPNP_GetValidIGD() 94 Try to handle scope id in link local IPv6 URL under MS Windows 95 962012/07/20: 97 Disable HAS_IP_MREQN on DragonFly BSD 98 992012/06/28: 100 GetUPNPUrls() now inserts scope into link-local IPv6 addresses 101 1022012/06/23: 103 More error return checks in upnpc.c 104 #define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id 105 parseURL() now parses IPv6 addresses scope 106 new parameter for miniwget() : IPv6 address scope 107 increment API_VERSION to 9 108 1092012/06/20: 110 fixed CMakeLists.txt 111 1122012/05/29 113 Improvements in testminiwget.sh 114 115VERSION 1.7 : released 2012/05/24 116 1172012/05/01: 118 Cleanup settings of CFLAGS in Makefile 119 Fix signed/unsigned integer comparaisons 120 1212012/04/20: 122 Allow to specify protocol with TCP or UDP for -A option 123 1242012/04/09: 125 Only try to fetch XML description once in UPNP_GetValidIGD() 126 Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments. 127 1282012/04/05: 129 minor improvements to minihttptestserver.c 130 1312012/03/15: 132 upnperrors.c returns valid error string for unrecognized error codes 133 1342012/03/08: 135 make minihttptestserver listen on loopback interface instead of 0.0.0.0 136 1372012/01/25: 138 Maven installation thanks to Alexey Kuznetsov 139 1402012/01/21: 141 Replace WIN32 macro by _WIN32 142 1432012/01/19: 144 Fixes in java wrappers thanks to Alexey Kuznetsov : 145 https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc 146 Make and install .deb packages (python) thanks to Alexey Kuznetsov : 147 https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc 148 1492012/01/07: 150 The multicast interface can now be specified by name with IPv4. 151 1522012/01/02: 153 Install man page 154 1552011/11/25: 156 added header to Port Mappings list in upnpc.c 157 1582011/10/09: 159 Makefile : make clean now removes jnaerator generated files. 160 MINIUPNPC_VERSION in miniupnpc.h (updated by make) 161 1622011/09/12: 163 added rootdescURL to UPNPUrls structure. 164 165VERSION 1.6 : released 2011/07/25 166 1672011/07/25: 168 Update doc for version 1.6 release 169 1702011/06/18: 171 Fix for windows in miniwget.c 172 1732011/06/04: 174 display remote host in port mapping listing 175 1762011/06/03: 177 Fix in make install : there were missing headers 178 1792011/05/26: 180 Fix the socket leak in miniwget thanks to Richard Marsh. 181 Permit to add leaseduration in -a command. Display lease duration. 182 1832011/05/15: 184 Try both LinkLocal and SiteLocal multicast address for SSDP in IPv6 185 1862011/05/09: 187 add a test in testminiwget.sh. 188 more error checking in miniwget.c 189 1902011/05/06: 191 Adding some tool to test and validate miniwget.c 192 simplified and debugged miniwget.c 193 1942011/04/11: 195 moving ReceiveData() to a receivedata.c file. 196 parsing presentation url 197 adding IGD v2 WANIPv6FirewallControl commands 198 1992011/04/10: 200 update of miniupnpcmodule.c 201 comments in miniwget.c, update in testminiwget 202 Adding errors codes from IGD v2 203 new functions in upnpc.c for IGD v2 204 2052011/04/09: 206 Support for litteral ip v6 address in miniwget 207 2082011/04/08: 209 Adding support for urn:schemas-upnp-org:service:WANIPv6FirewallControl:1 210 Updating APIVERSION 211 Supporting IPV6 in upnpDiscover() 212 Adding a -6 option to upnpc command line tool 213 2142011/03/18: 215 miniwget/parseURL() : return an error when url param is null. 216 fixing GetListOfPortMappings() 217 2182011/03/14: 219 upnpDiscover() now reporting an error code. 220 improvements in comments. 221 2222011/03/11: 223 adding miniupnpcstrings.h.cmake and CMakeLists.txt files. 224 2252011/02/15: 226 Implementation of GetListOfPortMappings() 227 2282011/02/07: 229 updates to minixml to support character data starting with spaces 230 minixml now support CDATA 231 upnpreplyparse treats <NewPortListing> specificaly 232 change in simpleUPnPcommand to return the buffer (simplification) 233 2342011/02/06: 235 Added leaseDuration argument to AddPortMapping() 236 Starting to implement GetListOfPortMappings() 237 2382011/01/11: 239 updating wingenminiupnpcstrings.c 240 2412011/01/04: 242 improving updateminiupnpcstrings.sh 243 244VERSION 1.5 : released 2011/01/01 245 2462010/12/21: 247 use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo 248 2492010/12/11: 250 Improvements on getHTTPResponse() code. 251 2522010/12/09: 253 new code for miniwget that handle Chunked transfer encoding 254 using getHTTPResponse() in SOAP call code 255 Adding MANIFEST.in for 'python setup.py bdist_rpm' 256 2572010/11/25: 258 changes to minissdpc.c to compile under Win32. 259 see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=729 260 2612010/09/17: 262 Various improvement to Makefile from Micha�� G��rny 263 2642010/08/05: 265 Adding the script "external-ip.sh" from Reuben Hawkins 266 2672010/06/09: 268 update to python module to match modification made on 2010/04/05 269 update to Java test code to match modification made on 2010/04/05 270 all UPNP_* function now return an error if the SOAP request failed 271 at HTTP level. 272 2732010/04/17: 274 Using GetBestRoute() under win32 in order to find the 275 right interface to use. 276 2772010/04/12: 278 Retrying with HTTP/1.1 if HTTP/1.0 failed. see 279 http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1703 280 2812010/04/07: 282 avoid returning duplicates in upnpDiscover() 283 2842010/04/05: 285 Create a connecthostport.h/.c with connecthostport() function 286 and use it in miniwget and miniupnpc. 287 Use getnameinfo() instead of inet_ntop or inet_ntoa 288 Work to make miniupnpc IPV6 compatible... 289 Add java test code. 290 Big changes in order to support device having both WANIPConnection 291 and WANPPPConnection. 292 2932010/04/04: 294 Use getaddrinfo() instead of gethostbyname() in miniwget. 295 2962010/01/06: 297 #define _DARWIN_C_SOURCE for Mac OS X 298 2992009/12/19: 300 Improve MinGW32 build 301 3022009/12/11: 303 adding a MSVC9 project to build the static library and executable 304 3052009/12/10: 306 Fixing some compilation stuff for Windows/MinGW 307 3082009/12/07: 309 adaptations in Makefile and updateminiupnpcstring.sh for AmigaOS 310 some fixes for Windows when using virtual ethernet adapters (it is the 311 case with VMWare installed). 312 3132009/12/04: 314 some fixes for AmigaOS compilation 315 Changed HTTP version to HTTP/1.0 for Soap too (to prevent chunked 316 transfer encoding) 317 3182009/12/03: 319 updating printIDG and testigddescparse.c for debug. 320 modifications to compile under AmigaOS 321 adding a testminiwget program 322 Changed miniwget to advertise itself as HTTP/1.0 to prevent chunked 323 transfer encoding 324 3252009/11/26: 326 fixing updateminiupnpcstrings.sh to take into account 327 which command that does not return an error code. 328 329VERSION 1.4 : released 2009/10/30 330 3312009/10/16: 332 using Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS in python module. 333 3342009/10/10: 335 Some fixes for compilation under Solaris 336 compilation fixes : http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1464 337 3382009/09/21: 339 fixing the code to ignore EINTR during connect() calls. 340 3412009/08/07: 342 Set socket timeout for connect() 343 Some cleanup in miniwget.c 344 3452009/08/04: 346 remove multiple redirections with -d in upnpc.c 347 Print textual error code in upnpc.c 348 Ignore EINTR during the connect() and poll() calls. 349 3502009/07/29: 351 fix in updateminiupnpcstrings.sh if OS name contains "/" 352 Sending a correct value for MX: field in SSDP request 353 3542009/07/20: 355 Change the Makefile to compile under Mac OS X 356 Fixed a stackoverflow in getDevicesFromMiniSSDPD() 357 3582009/07/09: 359 Compile under Haiku 360 generate miniupnpcstrings.h.in from miniupnpcstrings.h 361 3622009/06/04: 363 patching to compile under CygWin and cross compile for minGW 364 365VERSION 1.3 : 366 3672009/04/17: 368 updating python module 369 Use strtoull() when using C99 370 3712009/02/28: 372 Fixed miniwget.c for compiling under sun 373 3742008/12/18: 375 cleanup in Makefile (thanks to Paul de Weerd) 376 minissdpc.c : win32 compatibility 377 miniupnpc.c : changed xmlns prefix from 'm' to 'u' 378 Removed NDEBUG (using DEBUG) 379 3802008/10/14: 381 Added the ExternalHost argument to DeletePortMapping() 382 3832008/10/11: 384 Added the ExternalHost argument to AddPortMapping() 385 Put a correct User-Agent: header in HTTP requests. 386 387VERSION 1.2 : 388 3892008/10/07: 390 Update docs 391 3922008/09/25: 393 Integrated sameport patch from Dario Meloni : Added a "sameport" 394 argument to upnpDiscover(). 395 3962008/07/18: 397 small modif to make Clang happy :) 398 3992008/07/17: 400 #define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV... 401 4022008/07/14: 403 include declspec.h in installation (to /usr/include/miniupnpc) 404 405VERSION 1.1 : 406 4072008/07/04: 408 standard options for install/ln instead of gnu-specific stuff. 409 4102008/07/03: 411 now builds a .dll and .lib with win32. (mingw32) 412 4132008/04/28: 414 make install now install the binary of the upnpc tool 415 4162008/04/27: 417 added testupnpigd.py 418 added error strings for miniupnpc "internal" errors 419 improved python module error/exception reporting. 420 4212008/04/23: 422 Completely rewrite igd_desc_parse.c in order to be compatible with 423 Linksys WAG200G 424 Added testigddescparse 425 updated python module 426 427VERSION 1.0 : 428 4292008/02/21: 430 put some #ifdef DEBUG around DisplayNameValueList() 431 4322008/02/18: 433 Improved error reporting in upnpcommands.c 434 UPNP_GetStatusInfo() returns LastConnectionError 435 4362008/02/16: 437 better error handling in minisoap.c 438 improving display of "valid IGD found" in upnpc.c 439 4402008/02/03: 441 Fixing UPNP_GetValidIGD() 442 improved make install :) 443 4442007/12/22: 445 Adding upnperrors.c/h to provide a strupnperror() function 446 used to translate UPnP error codes to string. 447 4482007/12/19: 449 Fixing getDevicesFromMiniSSDPD() 450 improved error reporting of UPnP functions 451 4522007/12/18: 453 It is now possible to specify a different location for MiniSSDPd socket. 454 working with MiniSSDPd is now more efficient. 455 python module improved. 456 4572007/12/16: 458 improving error reporting 459 4602007/12/13: 461 Try to improve compatibility by using HTTP/1.0 instead of 1.1 and 462 XML a bit different for SOAP. 463 4642007/11/25: 465 fixed select() call for linux 466 4672007/11/15: 468 Added -fPIC to CFLAG for better shared library code. 469 4702007/11/02: 471 Fixed a potential socket leak in miniwget2() 472 4732007/10/16: 474 added a parameter to upnpDiscover() in order to allow the use of another 475 interface than the default multicast interface. 476 4772007/10/12: 478 Fixed the creation of symbolic link in Makefile 479 4802007/10/08: 481 Added man page 482 4832007/10/02: 484 fixed memory bug in GetUPNPUrls() 485 4862007/10/01: 487 fixes in the Makefile 488 Added UPNP_GetIGDFromUrl() and adapted the sample program accordingly. 489 Added SONAME in the shared library to please debian :) 490 fixed MS Windows compilation (minissdpd is not available under MS Windows). 491 4922007/09/25: 493 small change to Makefile to be able to install in a different location 494 (default is /usr) 495 4962007/09/24: 497 now compiling both shared and static library 498 4992007/09/19: 500 Cosmetic changes on upnpc.c 501 5022007/09/02: 503 adapting to new miniSSDPd (release version ?) 504 5052007/08/31: 506 Usage of miniSSDPd to skip discovery process. 507 5082007/08/27: 509 fixed python module to allow compilation with Python older than Python 2.4 510 5112007/06/12: 512 Added a python module. 513 5142007/05/19: 515 Fixed compilation under MinGW 516 5172007/05/15: 518 fixed a memory leak in AddPortMapping() 519 Added testupnpreplyparse executable to check the parsing of 520 upnp soap messages 521 minixml now ignore namespace prefixes. 522 5232007/04/26: 524 upnpc now displays external ip address with -s or -l 525 5262007/04/11: 527 changed MINIUPNPC_URL_MAXSIZE to 128 to accomodate the "BT Voyager 210" 528 5292007/03/19: 530 cleanup in miniwget.c 531 5322007/03/01: 533 Small typo fix... 534 5352007/01/30: 536 Now parsing the HTTP header from SOAP responses in order to 537 get content-length value. 538 5392007/01/29: 540 Fixed the Soap Query to speedup the HTTP request. 541 added some Win32 DLL stuff... 542 5432007/01/27: 544 Fixed some WIN32 compatibility issues 545 5462006/12/14: 547 Added UPNPIGD_IsConnected() function in miniupnp.c/.h 548 Added UPNP_GetValidIGD() in miniupnp.c/.h 549 cleaned upnpc.c main(). now using UPNP_GetValidIGD() 550 5512006/12/07: 552 Version 1.0-RC1 released 553 5542006/12/03: 555 Minor changes to compile under SunOS/Solaris 556 5572006/11/30: 558 made a minixml parser validator program 559 updated minixml to handle attributes correctly 560 5612006/11/22: 562 Added a -r option to the upnpc sample thanks to Alexander Hubmann. 563 5642006/11/19: 565 Cleanup code to make it more ANSI C compliant 566 5672006/11/10: 568 detect and display local lan address. 569 5702006/11/04: 571 Packets and Bytes Sent/Received are now unsigned int. 572 5732006/11/01: 574 Bug fix thanks to Giuseppe D'Angelo 575 5762006/10/31: 577 C++ compatibility for .h files. 578 Added a way to get ip Address on the LAN used to reach the IGD. 579 5802006/10/25: 581 Added M-SEARCH to the services in the discovery process. 582 5832006/10/22: 584 updated the Makefile to use makedepend, added a "make install" 585 update Makefile 586 5872006/10/20: 588 fixing the description url parsing thanks to patch sent by 589 Wayne Dawe. 590 Fixed/translated some comments. 591 Implemented a better discover process, first looking 592 for IGD then for root devices (as some devices only reply to 593 M-SEARCH for root devices). 594 5952006/09/02: 596 added freeUPNPDevlist() function. 597 5982006/08/04: 599 More command line arguments checking 600 6012006/08/01: 602 Added the .bat file to compile under Win32 with minGW32 603 6042006/07/31: 605 Fixed the rootdesc parser (igd_desc_parse.c) 606 6072006/07/20: 608 parseMSEARCHReply() is now returning the ST: line as well 609 starting changes to detect several UPnP devices on the network 610 6112006/07/19: 612 using GetCommonLinkProperties to get down/upload bitrate 613 614