Changelog.txt 16 KB

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