Changelog.txt 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. $Id: Changelog.txt,v 1.219 2015/10/26 17:05:06 nanard Exp $
  2. miniUPnP client Changelog.
  3. 2015/10/26:
  4. snprintf() overflow check. check overflow in simpleUPnPcommand2()
  5. 2015/10/25:
  6. fix compilation with old macs
  7. fix compilation with mingw32 (for Appveyor)
  8. fix python module for python <= 2.3
  9. 2015/10/08:
  10. Change sameport to localport
  11. see https://github.com/miniupnp/miniupnp/pull/120
  12. increments API_VERSION to 15
  13. 2015/09/15:
  14. Fix buffer overflow in igd_desc_parse.c/IGDstartelt()
  15. Discovered by Aleksandar Nikolic of Cisco Talos
  16. 2015/08/28:
  17. move ssdpDiscoverDevices() to minissdpc.c
  18. 2015/08/27:
  19. avoid unix socket leak in getDevicesFromMiniSSDPD()
  20. 2015/08/16:
  21. Also accept "Up" as ConnectionStatus value
  22. 2015/07/23:
  23. split getDevicesFromMiniSSDPD
  24. add ttl argument to upnpDiscover() functions
  25. increments API_VERSION to 14
  26. 2015/07/22:
  27. Read USN from SSDP messages.
  28. 2015/07/15:
  29. Check malloc/calloc
  30. 2015/06/16:
  31. update getDevicesFromMiniSSDPD() to process longer minissdpd
  32. responses
  33. 2015/05/22:
  34. add searchalltypes param to upnpDiscoverDevices()
  35. increments API_VERSION to 13
  36. 2015/04/30:
  37. upnpc: output version on the terminal
  38. 2015/04/27:
  39. _BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE
  40. fix CMakeLists.txt COMPILE_DEFINITIONS
  41. fix getDevicesFromMiniSSDPD() not setting scope_id
  42. improve -r command of upnpc command line tool
  43. 2014/11/17:
  44. search all :
  45. upnpDiscoverDevices() / upnpDiscoverAll() functions
  46. listdevices executable
  47. increment API_VERSION to 12
  48. validate igd_desc_parse
  49. 2014/11/13:
  50. increment API_VERSION to 11
  51. 2014/11/05:
  52. simplified function GetUPNPUrls()
  53. 2014/09/11:
  54. use remoteHost arg of DeletePortMapping
  55. 2014/09/06:
  56. Fix python3 build
  57. 2014/07/01:
  58. Fix parsing of IGD2 root descriptions
  59. 2014/06/10:
  60. rename LIBSPEC to MINIUPNP_LIBSPEC
  61. 2014/05/15:
  62. Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange
  63. 2014/02/05:
  64. handle EINPROGRESS after connect()
  65. 2014/02/03:
  66. minixml now handle XML comments
  67. VERSION 1.9 : released 2014/01/31
  68. 2014/01/31:
  69. added argument remoteHost to UPNP_GetSpecificPortMappingEntry()
  70. increment API_VERSION to 10
  71. 2013/12/09:
  72. --help and -h arguments in upnpc.c
  73. 2013/10/07:
  74. fixed potential buffer overrun in miniwget.c
  75. Modified UPNP_GetValidIGD() to check for ExternalIpAddress
  76. 2013/08/01:
  77. define MAXHOSTNAMELEN if not already done
  78. 2013/06/06:
  79. update upnpreplyparse to allow larger values (128 chars instead of 64)
  80. 2013/05/14:
  81. Update upnpreplyparse to take into account "empty" elements
  82. validate upnpreplyparse.c code with "make check"
  83. 2013/05/03:
  84. Fix Solaris build thanks to Maciej Małecki
  85. 2013/04/27:
  86. Fix testminiwget.sh for BSD
  87. 2013/03/23:
  88. Fixed Makefile for *BSD
  89. 2013/03/11:
  90. Update Makefile to use JNAerator version 0.11
  91. 2013/02/11:
  92. Fix testminiwget.sh for use with dash
  93. Use $(DESTDIR) in Makefile
  94. VERSION 1.8 : released 2013/02/06
  95. 2012/10/16:
  96. fix testminiwget with no IPv6 support
  97. 2012/09/27:
  98. Rename all include guards to not clash with C99
  99. (7.1.3 Reserved identifiers).
  100. 2012/08/30:
  101. Added -e option to upnpc program (set description for port mappings)
  102. 2012/08/29:
  103. Python 3 support (thanks to Christopher Foo)
  104. 2012/08/11:
  105. Fix a memory link in UPNP_GetValidIGD()
  106. Try to handle scope id in link local IPv6 URL under MS Windows
  107. 2012/07/20:
  108. Disable HAS_IP_MREQN on DragonFly BSD
  109. 2012/06/28:
  110. GetUPNPUrls() now inserts scope into link-local IPv6 addresses
  111. 2012/06/23:
  112. More error return checks in upnpc.c
  113. #define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id
  114. parseURL() now parses IPv6 addresses scope
  115. new parameter for miniwget() : IPv6 address scope
  116. increment API_VERSION to 9
  117. 2012/06/20:
  118. fixed CMakeLists.txt
  119. 2012/05/29
  120. Improvements in testminiwget.sh
  121. VERSION 1.7 : released 2012/05/24
  122. 2012/05/01:
  123. Cleanup settings of CFLAGS in Makefile
  124. Fix signed/unsigned integer comparaisons
  125. 2012/04/20:
  126. Allow to specify protocol with TCP or UDP for -A option
  127. 2012/04/09:
  128. Only try to fetch XML description once in UPNP_GetValidIGD()
  129. Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments.
  130. 2012/04/05:
  131. minor improvements to minihttptestserver.c
  132. 2012/03/15:
  133. upnperrors.c returns valid error string for unrecognized error codes
  134. 2012/03/08:
  135. make minihttptestserver listen on loopback interface instead of 0.0.0.0
  136. 2012/01/25:
  137. Maven installation thanks to Alexey Kuznetsov
  138. 2012/01/21:
  139. Replace WIN32 macro by _WIN32
  140. 2012/01/19:
  141. Fixes in java wrappers thanks to Alexey Kuznetsov :
  142. https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc
  143. Make and install .deb packages (python) thanks to Alexey Kuznetsov :
  144. https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc
  145. 2012/01/07:
  146. The multicast interface can now be specified by name with IPv4.
  147. 2012/01/02:
  148. Install man page
  149. 2011/11/25:
  150. added header to Port Mappings list in upnpc.c
  151. 2011/10/09:
  152. Makefile : make clean now removes jnaerator generated files.
  153. MINIUPNPC_VERSION in miniupnpc.h (updated by make)
  154. 2011/09/12:
  155. added rootdescURL to UPNPUrls structure.
  156. VERSION 1.6 : released 2011/07/25
  157. 2011/07/25:
  158. Update doc for version 1.6 release
  159. 2011/06/18:
  160. Fix for windows in miniwget.c
  161. 2011/06/04:
  162. display remote host in port mapping listing
  163. 2011/06/03:
  164. Fix in make install : there were missing headers
  165. 2011/05/26:
  166. Fix the socket leak in miniwget thanks to Richard Marsh.
  167. Permit to add leaseduration in -a command. Display lease duration.
  168. 2011/05/15:
  169. Try both LinkLocal and SiteLocal multicast address for SSDP in IPv6
  170. 2011/05/09:
  171. add a test in testminiwget.sh.
  172. more error checking in miniwget.c
  173. 2011/05/06:
  174. Adding some tool to test and validate miniwget.c
  175. simplified and debugged miniwget.c
  176. 2011/04/11:
  177. moving ReceiveData() to a receivedata.c file.
  178. parsing presentation url
  179. adding IGD v2 WANIPv6FirewallControl commands
  180. 2011/04/10:
  181. update of miniupnpcmodule.c
  182. comments in miniwget.c, update in testminiwget
  183. Adding errors codes from IGD v2
  184. new functions in upnpc.c for IGD v2
  185. 2011/04/09:
  186. Support for litteral ip v6 address in miniwget
  187. 2011/04/08:
  188. Adding support for urn:schemas-upnp-org:service:WANIPv6FirewallControl:1
  189. Updating APIVERSION
  190. Supporting IPV6 in upnpDiscover()
  191. Adding a -6 option to upnpc command line tool
  192. 2011/03/18:
  193. miniwget/parseURL() : return an error when url param is null.
  194. fixing GetListOfPortMappings()
  195. 2011/03/14:
  196. upnpDiscover() now reporting an error code.
  197. improvements in comments.
  198. 2011/03/11:
  199. adding miniupnpcstrings.h.cmake and CMakeLists.txt files.
  200. 2011/02/15:
  201. Implementation of GetListOfPortMappings()
  202. 2011/02/07:
  203. updates to minixml to support character data starting with spaces
  204. minixml now support CDATA
  205. upnpreplyparse treats <NewPortListing> specificaly
  206. change in simpleUPnPcommand to return the buffer (simplification)
  207. 2011/02/06:
  208. Added leaseDuration argument to AddPortMapping()
  209. Starting to implement GetListOfPortMappings()
  210. 2011/01/11:
  211. updating wingenminiupnpcstrings.c
  212. 2011/01/04:
  213. improving updateminiupnpcstrings.sh
  214. VERSION 1.5 : released 2011/01/01
  215. 2010/12/21:
  216. use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo
  217. 2010/12/11:
  218. Improvements on getHTTPResponse() code.
  219. 2010/12/09:
  220. new code for miniwget that handle Chunked transfer encoding
  221. using getHTTPResponse() in SOAP call code
  222. Adding MANIFEST.in for 'python setup.py bdist_rpm'
  223. 2010/11/25:
  224. changes to minissdpc.c to compile under Win32.
  225. see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=729
  226. 2010/09/17:
  227. Various improvement to Makefile from Michał Górny
  228. 2010/08/05:
  229. Adding the script "external-ip.sh" from Reuben Hawkins
  230. 2010/06/09:
  231. update to python module to match modification made on 2010/04/05
  232. update to Java test code to match modification made on 2010/04/05
  233. all UPNP_* function now return an error if the SOAP request failed
  234. at HTTP level.
  235. 2010/04/17:
  236. Using GetBestRoute() under win32 in order to find the
  237. right interface to use.
  238. 2010/04/12:
  239. Retrying with HTTP/1.1 if HTTP/1.0 failed. see
  240. http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1703
  241. 2010/04/07:
  242. avoid returning duplicates in upnpDiscover()
  243. 2010/04/05:
  244. Create a connecthostport.h/.c with connecthostport() function
  245. and use it in miniwget and miniupnpc.
  246. Use getnameinfo() instead of inet_ntop or inet_ntoa
  247. Work to make miniupnpc IPV6 compatible...
  248. Add java test code.
  249. Big changes in order to support device having both WANIPConnection
  250. and WANPPPConnection.
  251. 2010/04/04:
  252. Use getaddrinfo() instead of gethostbyname() in miniwget.
  253. 2010/01/06:
  254. #define _DARWIN_C_SOURCE for Mac OS X
  255. 2009/12/19:
  256. Improve MinGW32 build
  257. 2009/12/11:
  258. adding a MSVC9 project to build the static library and executable
  259. 2009/12/10:
  260. Fixing some compilation stuff for Windows/MinGW
  261. 2009/12/07:
  262. adaptations in Makefile and updateminiupnpcstring.sh for AmigaOS
  263. some fixes for Windows when using virtual ethernet adapters (it is the
  264. case with VMWare installed).
  265. 2009/12/04:
  266. some fixes for AmigaOS compilation
  267. Changed HTTP version to HTTP/1.0 for Soap too (to prevent chunked
  268. transfer encoding)
  269. 2009/12/03:
  270. updating printIDG and testigddescparse.c for debug.
  271. modifications to compile under AmigaOS
  272. adding a testminiwget program
  273. Changed miniwget to advertise itself as HTTP/1.0 to prevent chunked
  274. transfer encoding
  275. 2009/11/26:
  276. fixing updateminiupnpcstrings.sh to take into account
  277. which command that does not return an error code.
  278. VERSION 1.4 : released 2009/10/30
  279. 2009/10/16:
  280. using Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS in python module.
  281. 2009/10/10:
  282. Some fixes for compilation under Solaris
  283. compilation fixes : http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1464
  284. 2009/09/21:
  285. fixing the code to ignore EINTR during connect() calls.
  286. 2009/08/07:
  287. Set socket timeout for connect()
  288. Some cleanup in miniwget.c
  289. 2009/08/04:
  290. remove multiple redirections with -d in upnpc.c
  291. Print textual error code in upnpc.c
  292. Ignore EINTR during the connect() and poll() calls.
  293. 2009/07/29:
  294. fix in updateminiupnpcstrings.sh if OS name contains "/"
  295. Sending a correct value for MX: field in SSDP request
  296. 2009/07/20:
  297. Change the Makefile to compile under Mac OS X
  298. Fixed a stackoverflow in getDevicesFromMiniSSDPD()
  299. 2009/07/09:
  300. Compile under Haiku
  301. generate miniupnpcstrings.h.in from miniupnpcstrings.h
  302. 2009/06/04:
  303. patching to compile under CygWin and cross compile for minGW
  304. VERSION 1.3 :
  305. 2009/04/17:
  306. updating python module
  307. Use strtoull() when using C99
  308. 2009/02/28:
  309. Fixed miniwget.c for compiling under sun
  310. 2008/12/18:
  311. cleanup in Makefile (thanks to Paul de Weerd)
  312. minissdpc.c : win32 compatibility
  313. miniupnpc.c : changed xmlns prefix from 'm' to 'u'
  314. Removed NDEBUG (using DEBUG)
  315. 2008/10/14:
  316. Added the ExternalHost argument to DeletePortMapping()
  317. 2008/10/11:
  318. Added the ExternalHost argument to AddPortMapping()
  319. Put a correct User-Agent: header in HTTP requests.
  320. VERSION 1.2 :
  321. 2008/10/07:
  322. Update docs
  323. 2008/09/25:
  324. Integrated sameport patch from Dario Meloni : Added a "sameport"
  325. argument to upnpDiscover().
  326. 2008/07/18:
  327. small modif to make Clang happy :)
  328. 2008/07/17:
  329. #define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV...
  330. 2008/07/14:
  331. include declspec.h in installation (to /usr/include/miniupnpc)
  332. VERSION 1.1 :
  333. 2008/07/04:
  334. standard options for install/ln instead of gnu-specific stuff.
  335. 2008/07/03:
  336. now builds a .dll and .lib with win32. (mingw32)
  337. 2008/04/28:
  338. make install now install the binary of the upnpc tool
  339. 2008/04/27:
  340. added testupnpigd.py
  341. added error strings for miniupnpc "internal" errors
  342. improved python module error/exception reporting.
  343. 2008/04/23:
  344. Completely rewrite igd_desc_parse.c in order to be compatible with
  345. Linksys WAG200G
  346. Added testigddescparse
  347. updated python module
  348. VERSION 1.0 :
  349. 2008/02/21:
  350. put some #ifdef DEBUG around DisplayNameValueList()
  351. 2008/02/18:
  352. Improved error reporting in upnpcommands.c
  353. UPNP_GetStatusInfo() returns LastConnectionError
  354. 2008/02/16:
  355. better error handling in minisoap.c
  356. improving display of "valid IGD found" in upnpc.c
  357. 2008/02/03:
  358. Fixing UPNP_GetValidIGD()
  359. improved make install :)
  360. 2007/12/22:
  361. Adding upnperrors.c/h to provide a strupnperror() function
  362. used to translate UPnP error codes to string.
  363. 2007/12/19:
  364. Fixing getDevicesFromMiniSSDPD()
  365. improved error reporting of UPnP functions
  366. 2007/12/18:
  367. It is now possible to specify a different location for MiniSSDPd socket.
  368. working with MiniSSDPd is now more efficient.
  369. python module improved.
  370. 2007/12/16:
  371. improving error reporting
  372. 2007/12/13:
  373. Try to improve compatibility by using HTTP/1.0 instead of 1.1 and
  374. XML a bit different for SOAP.
  375. 2007/11/25:
  376. fixed select() call for linux
  377. 2007/11/15:
  378. Added -fPIC to CFLAG for better shared library code.
  379. 2007/11/02:
  380. Fixed a potential socket leak in miniwget2()
  381. 2007/10/16:
  382. added a parameter to upnpDiscover() in order to allow the use of another
  383. interface than the default multicast interface.
  384. 2007/10/12:
  385. Fixed the creation of symbolic link in Makefile
  386. 2007/10/08:
  387. Added man page
  388. 2007/10/02:
  389. fixed memory bug in GetUPNPUrls()
  390. 2007/10/01:
  391. fixes in the Makefile
  392. Added UPNP_GetIGDFromUrl() and adapted the sample program accordingly.
  393. Added SONAME in the shared library to please debian :)
  394. fixed MS Windows compilation (minissdpd is not available under MS Windows).
  395. 2007/09/25:
  396. small change to Makefile to be able to install in a different location
  397. (default is /usr)
  398. 2007/09/24:
  399. now compiling both shared and static library
  400. 2007/09/19:
  401. Cosmetic changes on upnpc.c
  402. 2007/09/02:
  403. adapting to new miniSSDPd (release version ?)
  404. 2007/08/31:
  405. Usage of miniSSDPd to skip discovery process.
  406. 2007/08/27:
  407. fixed python module to allow compilation with Python older than Python 2.4
  408. 2007/06/12:
  409. Added a python module.
  410. 2007/05/19:
  411. Fixed compilation under MinGW
  412. 2007/05/15:
  413. fixed a memory leak in AddPortMapping()
  414. Added testupnpreplyparse executable to check the parsing of
  415. upnp soap messages
  416. minixml now ignore namespace prefixes.
  417. 2007/04/26:
  418. upnpc now displays external ip address with -s or -l
  419. 2007/04/11:
  420. changed MINIUPNPC_URL_MAXSIZE to 128 to accomodate the "BT Voyager 210"
  421. 2007/03/19:
  422. cleanup in miniwget.c
  423. 2007/03/01:
  424. Small typo fix...
  425. 2007/01/30:
  426. Now parsing the HTTP header from SOAP responses in order to
  427. get content-length value.
  428. 2007/01/29:
  429. Fixed the Soap Query to speedup the HTTP request.
  430. added some Win32 DLL stuff...
  431. 2007/01/27:
  432. Fixed some WIN32 compatibility issues
  433. 2006/12/14:
  434. Added UPNPIGD_IsConnected() function in miniupnp.c/.h
  435. Added UPNP_GetValidIGD() in miniupnp.c/.h
  436. cleaned upnpc.c main(). now using UPNP_GetValidIGD()
  437. 2006/12/07:
  438. Version 1.0-RC1 released
  439. 2006/12/03:
  440. Minor changes to compile under SunOS/Solaris
  441. 2006/11/30:
  442. made a minixml parser validator program
  443. updated minixml to handle attributes correctly
  444. 2006/11/22:
  445. Added a -r option to the upnpc sample thanks to Alexander Hubmann.
  446. 2006/11/19:
  447. Cleanup code to make it more ANSI C compliant
  448. 2006/11/10:
  449. detect and display local lan address.
  450. 2006/11/04:
  451. Packets and Bytes Sent/Received are now unsigned int.
  452. 2006/11/01:
  453. Bug fix thanks to Giuseppe D'Angelo
  454. 2006/10/31:
  455. C++ compatibility for .h files.
  456. Added a way to get ip Address on the LAN used to reach the IGD.
  457. 2006/10/25:
  458. Added M-SEARCH to the services in the discovery process.
  459. 2006/10/22:
  460. updated the Makefile to use makedepend, added a "make install"
  461. update Makefile
  462. 2006/10/20:
  463. fixing the description url parsing thanks to patch sent by
  464. Wayne Dawe.
  465. Fixed/translated some comments.
  466. Implemented a better discover process, first looking
  467. for IGD then for root devices (as some devices only reply to
  468. M-SEARCH for root devices).
  469. 2006/09/02:
  470. added freeUPNPDevlist() function.
  471. 2006/08/04:
  472. More command line arguments checking
  473. 2006/08/01:
  474. Added the .bat file to compile under Win32 with minGW32
  475. 2006/07/31:
  476. Fixed the rootdesc parser (igd_desc_parse.c)
  477. 2006/07/20:
  478. parseMSEARCHReply() is now returning the ST: line as well
  479. starting changes to detect several UPnP devices on the network
  480. 2006/07/19:
  481. using GetCommonLinkProperties to get down/upload bitrate