1: $Id: Changelog.txt,v 1.1.1.3 2023/09/27 11:21:37 misho Exp $
2: miniUPnP client Changelog.
3:
4: 2023/06/05:
5: GetListOfPortMappings NewStartPort 0 => 1
6:
7: 2023/05/30:
8: CheckPinholeWorking is optional
9: add 60x errors from UPnP Device Architecture
10:
11: 2023/01/04:
12: cmake: install binaries, man pages and external-ip.sh
13:
14: VERSION 2.2.4 : released 2022/10/21
15:
16: 2022/02/20:
17: upnpc: use of @ to replace local lan address
18:
19: 2021/11/09:
20: python module : Allow to specify the root description url
21:
22: VERSION 2.2.3 : released 2021/09/28
23:
24: 2021/08/13:
25: Change directory structure : include/ and src/ directories.
26:
27: VERSION 2.2.2 : released 2021/03/03
28:
29: 2021/01/15:
30: miniupnpcmodule.c: throw an exception in UPnP_discover()
31:
32: 2020/12/30:
33: Fix usage of IP_MULTICAST_IF with struct ip_mreqn
34:
35: VERSION 2.2.1 : released 2020/12/20
36:
37: 2020/11/30:
38: Add miniupnpc.rc for .dll description
39:
40: VERSION 2.2.0 : released 2020/11/09
41:
42: 2020/09/24:
43: Check properly for reserved IP addresses
44:
45: 2020/09/23:
46: prevent infinite loop in upnpDiscover()
47:
48: 2020/02/16:
49: Add Haiku support
50:
51: 2019/10/22:
52: testminiwget.sh can use either "ip addr" or "ifconfig -a
53:
54: 2019/10/13:
55: fix UPNP_GetValidIGD() when several devices are found
56: which are reachable from != local address
57:
58: 2019/08/24:
59: Allow Remote Host on upnpc command line
60: fix error 708 description in strupnperror()
61:
62: 2019/04/05:
63: Fix memory leak in upnpreplyparse.c with NewPortListing element
64:
65: 2019/03/10:
66: connecthostport.c: Code simplification, error trace fix
67:
68: 2019/01/23:
69: set timeout for select() in connecthostport()
70:
71: 2018/10/31:
72: miniupnpcmodule.c: check return of WSAStartup()
73:
74: 2018/07/14:
75: Fix and improve MSVC project :
76: Add Dll configurations
77: improve genminiupnpcstrings.vbs
78:
79: 2018/06/18:
80: Fixes for windows 64-bits.
81:
82: VERSION 2.1 : released 2018/05/07
83:
84: 2018/05/07:
85: CMake Modernize and cleanup CMakeLists.txt
86: Update MS Visual Studio projects
87:
88: 2018/04/30:
89: listdevices: show devices sorted by XML desc URL
90:
91: 2018/04/26:
92: Small fix in miniupnpcmodule.c (python module)
93: Support cross compiling in Makefile.mingw
94:
95: 2018/04/06:
96: Use SOCKET type instead of int (for Win64 compilation)
97: Increments API_VERSION to 17
98:
99: 2018/02/22:
100: Disable usage of MiniSSDPd when using -m option
101:
102: 2017/12/11:
103: Fix buffer over run in minixml.c
104: Fix uninitialized variable access in upnpreplyparse.c
105:
106: 2017/05/05:
107: Fix CVE-2017-8798 Thanks to tin/Team OSTStrom
108:
109: 2016/11/11:
110: check strlen before memcmp in XML parsing portlistingparse.c
111: fix build under SOLARIS and CYGWIN
112:
113: 2016/10/11:
114: Add python 3 compatibility to IGD test
115:
116: VERSION 2.0 : released 2016/04/19
117:
118: 2016/01/24:
119: change miniwget to return HTTP status code
120: increments API_VERSION to 16
121:
122: 2016/01/22:
123: Improve UPNPIGD_IsConnected() to check if WAN address is not private.
124: parse HTTP response status line in miniwget.c
125:
126: 2015/10/26:
127: snprintf() overflow check. check overflow in simpleUPnPcommand2()
128:
129: 2015/10/25:
130: fix compilation with old macs
131: fix compilation with mingw32 (for Appveyor)
132: fix python module for python <= 2.3
133:
134: 2015/10/08:
135: Change sameport to localport
136: see https://github.com/miniupnp/miniupnp/pull/120
137: increments API_VERSION to 15
138:
139: 2015/09/15:
140: Fix buffer overflow in igd_desc_parse.c/IGDstartelt()
141: Discovered by Aleksandar Nikolic of Cisco Talos
142:
143: 2015/08/28:
144: move ssdpDiscoverDevices() to minissdpc.c
145:
146: 2015/08/27:
147: avoid unix socket leak in getDevicesFromMiniSSDPD()
148:
149: 2015/08/16:
150: Also accept "Up" as ConnectionStatus value
151:
152: 2015/07/23:
153: split getDevicesFromMiniSSDPD
154: add ttl argument to upnpDiscover() functions
155: increments API_VERSION to 14
156:
157: 2015/07/22:
158: Read USN from SSDP messages.
159:
160: 2015/07/15:
161: Check malloc/calloc
162:
163: 2015/06/16:
164: update getDevicesFromMiniSSDPD() to process longer minissdpd
165: responses
166:
167: 2015/05/22:
168: add searchalltypes param to upnpDiscoverDevices()
169: increments API_VERSION to 13
170:
171: 2015/04/30:
172: upnpc: output version on the terminal
173:
174: 2015/04/27:
175: _BSD_SOURCE is deprecated in favor of _DEFAULT_SOURCE
176: fix CMakeLists.txt COMPILE_DEFINITIONS
177: fix getDevicesFromMiniSSDPD() not setting scope_id
178: improve -r command of upnpc command line tool
179:
180: 2014/11/17:
181: search all :
182: upnpDiscoverDevices() / upnpDiscoverAll() functions
183: listdevices executable
184: increment API_VERSION to 12
185: validate igd_desc_parse
186:
187: 2014/11/13:
188: increment API_VERSION to 11
189:
190: 2014/11/05:
191: simplified function GetUPNPUrls()
192:
193: 2014/09/11:
194: use remoteHost arg of DeletePortMapping
195:
196: 2014/09/06:
197: Fix python3 build
198:
199: 2014/07/01:
200: Fix parsing of IGD2 root descriptions
201:
202: 2014/06/10:
203: rename LIBSPEC to MINIUPNP_LIBSPEC
204:
205: 2014/05/15:
206: Add support for IGD2 AddAnyPortMapping and DeletePortMappingRange
207:
208: 2014/02/05:
209: handle EINPROGRESS after connect()
210:
211: 2014/02/03:
212: minixml now handle XML comments
213:
214: VERSION 1.9 : released 2014/01/31
215:
216: 2014/01/31:
217: added argument remoteHost to UPNP_GetSpecificPortMappingEntry()
218: increment API_VERSION to 10
219:
220: 2013/12/09:
221: --help and -h arguments in upnpc.c
222:
223: 2013/10/07:
224: fixed potential buffer overrun in miniwget.c
225: Modified UPNP_GetValidIGD() to check for ExternalIpAddress
226:
227: 2013/08/01:
228: define MAXHOSTNAMELEN if not already done
229:
230: 2013/06/06:
231: update upnpreplyparse to allow larger values (128 chars instead of 64)
232:
233: 2013/05/14:
234: Update upnpreplyparse to take into account "empty" elements
235: validate upnpreplyparse.c code with "make check"
236:
237: 2013/05/03:
238: Fix Solaris build thanks to Maciej Małecki
239:
240: 2013/04/27:
241: Fix testminiwget.sh for BSD
242:
243: 2013/03/23:
244: Fixed Makefile for *BSD
245:
246: 2013/03/11:
247: Update Makefile to use JNAerator version 0.11
248:
249: 2013/02/11:
250: Fix testminiwget.sh for use with dash
251: Use $(DESTDIR) in Makefile
252:
253: VERSION 1.8 : released 2013/02/06
254:
255: 2012/10/16:
256: fix testminiwget with no IPv6 support
257:
258: 2012/09/27:
259: Rename all include guards to not clash with C99
260: (7.1.3 Reserved identifiers).
261:
262: 2012/08/30:
263: Added -e option to upnpc program (set description for port mappings)
264:
265: 2012/08/29:
266: Python 3 support (thanks to Christopher Foo)
267:
268: 2012/08/11:
269: Fix a memory link in UPNP_GetValidIGD()
270: Try to handle scope id in link local IPv6 URL under MS Windows
271:
272: 2012/07/20:
273: Disable HAS_IP_MREQN on DragonFly BSD
274:
275: 2012/06/28:
276: GetUPNPUrls() now inserts scope into link-local IPv6 addresses
277:
278: 2012/06/23:
279: More error return checks in upnpc.c
280: #define MINIUPNPC_GET_SRC_ADDR enables receivedata() to get scope_id
281: parseURL() now parses IPv6 addresses scope
282: new parameter for miniwget() : IPv6 address scope
283: increment API_VERSION to 9
284:
285: 2012/06/20:
286: fixed CMakeLists.txt
287:
288: 2012/05/29
289: Improvements in testminiwget.sh
290:
291: VERSION 1.7 : released 2012/05/24
292:
293: 2012/05/01:
294: Cleanup settings of CFLAGS in Makefile
295: Fix signed/unsigned integer comparaisons
296:
297: 2012/04/20:
298: Allow to specify protocol with TCP or UDP for -A option
299:
300: 2012/04/09:
301: Only try to fetch XML description once in UPNP_GetValidIGD()
302: Added -ansi flag to compilation, and fixed C++ comments to ANSI C comments.
303:
304: 2012/04/05:
305: minor improvements to minihttptestserver.c
306:
307: 2012/03/15:
308: upnperrors.c returns valid error string for unrecognized error codes
309:
310: 2012/03/08:
311: make minihttptestserver listen on loopback interface instead of 0.0.0.0
312:
313: 2012/01/25:
314: Maven installation thanks to Alexey Kuznetsov
315:
316: 2012/01/21:
317: Replace WIN32 macro by _WIN32
318:
319: 2012/01/19:
320: Fixes in java wrappers thanks to Alexey Kuznetsov :
321: https://github.com/axet/miniupnp/tree/fix-javatest/miniupnpc
322: Make and install .deb packages (python) thanks to Alexey Kuznetsov :
323: https://github.com/axet/miniupnp/tree/feature-debbuild/miniupnpc
324:
325: 2012/01/07:
326: The multicast interface can now be specified by name with IPv4.
327:
328: 2012/01/02:
329: Install man page
330:
331: 2011/11/25:
332: added header to Port Mappings list in upnpc.c
333:
334: 2011/10/09:
335: Makefile : make clean now removes jnaerator generated files.
336: MINIUPNPC_VERSION in miniupnpc.h (updated by make)
337:
338: 2011/09/12:
339: added rootdescURL to UPNPUrls structure.
340:
341: VERSION 1.6 : released 2011/07/25
342:
343: 2011/07/25:
344: Update doc for version 1.6 release
345:
346: 2011/06/18:
347: Fix for windows in miniwget.c
348:
349: 2011/06/04:
350: display remote host in port mapping listing
351:
352: 2011/06/03:
353: Fix in make install : there were missing headers
354:
355: 2011/05/26:
356: Fix the socket leak in miniwget thanks to Richard Marsh.
357: Permit to add leaseduration in -a command. Display lease duration.
358:
359: 2011/05/15:
360: Try both LinkLocal and SiteLocal multicast address for SSDP in IPv6
361:
362: 2011/05/09:
363: add a test in testminiwget.sh.
364: more error checking in miniwget.c
365:
366: 2011/05/06:
367: Adding some tool to test and validate miniwget.c
368: simplified and debugged miniwget.c
369:
370: 2011/04/11:
371: moving ReceiveData() to a receivedata.c file.
372: parsing presentation url
373: adding IGD v2 WANIPv6FirewallControl commands
374:
375: 2011/04/10:
376: update of miniupnpcmodule.c
377: comments in miniwget.c, update in testminiwget
378: Adding errors codes from IGD v2
379: new functions in upnpc.c for IGD v2
380:
381: 2011/04/09:
382: Support for litteral ip v6 address in miniwget
383:
384: 2011/04/08:
385: Adding support for urn:schemas-upnp-org:service:WANIPv6FirewallControl:1
386: Updating APIVERSION
387: Supporting IPV6 in upnpDiscover()
388: Adding a -6 option to upnpc command line tool
389:
390: 2011/03/18:
391: miniwget/parseURL() : return an error when url param is null.
392: fixing GetListOfPortMappings()
393:
394: 2011/03/14:
395: upnpDiscover() now reporting an error code.
396: improvements in comments.
397:
398: 2011/03/11:
399: adding miniupnpcstrings.h.cmake and CMakeLists.txt files.
400:
401: 2011/02/15:
402: Implementation of GetListOfPortMappings()
403:
404: 2011/02/07:
405: updates to minixml to support character data starting with spaces
406: minixml now support CDATA
407: upnpreplyparse treats <NewPortListing> specificaly
408: change in simpleUPnPcommand to return the buffer (simplification)
409:
410: 2011/02/06:
411: Added leaseDuration argument to AddPortMapping()
412: Starting to implement GetListOfPortMappings()
413:
414: 2011/01/11:
415: updating wingenminiupnpcstrings.c
416:
417: 2011/01/04:
418: improving updateminiupnpcstrings.sh
419:
420: VERSION 1.5 : released 2011/01/01
421:
422: 2010/12/21:
423: use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo
424:
425: 2010/12/11:
426: Improvements on getHTTPResponse() code.
427:
428: 2010/12/09:
429: new code for miniwget that handle Chunked transfer encoding
430: using getHTTPResponse() in SOAP call code
431: Adding MANIFEST.in for 'python setup.py bdist_rpm'
432:
433: 2010/11/25:
434: changes to minissdpc.c to compile under Win32.
435: see http://miniupnp.tuxfamily.org/forum/viewtopic.php?t=729
436:
437: 2010/09/17:
438: Various improvement to Makefile from Michał Górny
439:
440: 2010/08/05:
441: Adding the script "external-ip.sh" from Reuben Hawkins
442:
443: 2010/06/09:
444: update to python module to match modification made on 2010/04/05
445: update to Java test code to match modification made on 2010/04/05
446: all UPNP_* function now return an error if the SOAP request failed
447: at HTTP level.
448:
449: 2010/04/17:
450: Using GetBestRoute() under win32 in order to find the
451: right interface to use.
452:
453: 2010/04/12:
454: Retrying with HTTP/1.1 if HTTP/1.0 failed. see
455: http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1703
456:
457: 2010/04/07:
458: avoid returning duplicates in upnpDiscover()
459:
460: 2010/04/05:
461: Create a connecthostport.h/.c with connecthostport() function
462: and use it in miniwget and miniupnpc.
463: Use getnameinfo() instead of inet_ntop or inet_ntoa
464: Work to make miniupnpc IPV6 compatible...
465: Add java test code.
466: Big changes in order to support device having both WANIPConnection
467: and WANPPPConnection.
468:
469: 2010/04/04:
470: Use getaddrinfo() instead of gethostbyname() in miniwget.
471:
472: 2010/01/06:
473: #define _DARWIN_C_SOURCE for Mac OS X
474:
475: 2009/12/19:
476: Improve MinGW32 build
477:
478: 2009/12/11:
479: adding a MSVC9 project to build the static library and executable
480:
481: 2009/12/10:
482: Fixing some compilation stuff for Windows/MinGW
483:
484: 2009/12/07:
485: adaptations in Makefile and updateminiupnpcstring.sh for AmigaOS
486: some fixes for Windows when using virtual ethernet adapters (it is the
487: case with VMWare installed).
488:
489: 2009/12/04:
490: some fixes for AmigaOS compilation
491: Changed HTTP version to HTTP/1.0 for Soap too (to prevent chunked
492: transfer encoding)
493:
494: 2009/12/03:
495: updating printIDG and testigddescparse.c for debug.
496: modifications to compile under AmigaOS
497: adding a testminiwget program
498: Changed miniwget to advertise itself as HTTP/1.0 to prevent chunked
499: transfer encoding
500:
501: 2009/11/26:
502: fixing updateminiupnpcstrings.sh to take into account
503: which command that does not return an error code.
504:
505: VERSION 1.4 : released 2009/10/30
506:
507: 2009/10/16:
508: using Py_BEGIN_ALLOW_THREADS and Py_END_ALLOW_THREADS in python module.
509:
510: 2009/10/10:
511: Some fixes for compilation under Solaris
512: compilation fixes : http://miniupnp.tuxfamily.org/forum/viewtopic.php?p=1464
513:
514: 2009/09/21:
515: fixing the code to ignore EINTR during connect() calls.
516:
517: 2009/08/07:
518: Set socket timeout for connect()
519: Some cleanup in miniwget.c
520:
521: 2009/08/04:
522: remove multiple redirections with -d in upnpc.c
523: Print textual error code in upnpc.c
524: Ignore EINTR during the connect() and poll() calls.
525:
526: 2009/07/29:
527: fix in updateminiupnpcstrings.sh if OS name contains "/"
528: Sending a correct value for MX: field in SSDP request
529:
530: 2009/07/20:
531: Change the Makefile to compile under Mac OS X
532: Fixed a stackoverflow in getDevicesFromMiniSSDPD()
533:
534: 2009/07/09:
535: Compile under Haiku
536: generate miniupnpcstrings.h.in from miniupnpcstrings.h
537:
538: 2009/06/04:
539: patching to compile under CygWin and cross compile for minGW
540:
541: VERSION 1.3 :
542:
543: 2009/04/17:
544: updating python module
545: Use strtoull() when using C99
546:
547: 2009/02/28:
548: Fixed miniwget.c for compiling under sun
549:
550: 2008/12/18:
551: cleanup in Makefile (thanks to Paul de Weerd)
552: minissdpc.c : win32 compatibility
553: miniupnpc.c : changed xmlns prefix from 'm' to 'u'
554: Removed NDEBUG (using DEBUG)
555:
556: 2008/10/14:
557: Added the ExternalHost argument to DeletePortMapping()
558:
559: 2008/10/11:
560: Added the ExternalHost argument to AddPortMapping()
561: Put a correct User-Agent: header in HTTP requests.
562:
563: VERSION 1.2 :
564:
565: 2008/10/07:
566: Update docs
567:
568: 2008/09/25:
569: Integrated sameport patch from Dario Meloni : Added a "sameport"
570: argument to upnpDiscover().
571:
572: 2008/07/18:
573: small modif to make Clang happy :)
574:
575: 2008/07/17:
576: #define SOAPPREFIX "s" in miniupnpc.c in order to remove SOAP-ENV...
577:
578: 2008/07/14:
579: include declspec.h in installation (to /usr/include/miniupnpc)
580:
581: VERSION 1.1 :
582:
583: 2008/07/04:
584: standard options for install/ln instead of gnu-specific stuff.
585:
586: 2008/07/03:
587: now builds a .dll and .lib with win32. (mingw32)
588:
589: 2008/04/28:
590: make install now install the binary of the upnpc tool
591:
592: 2008/04/27:
593: added testupnpigd.py
594: added error strings for miniupnpc "internal" errors
595: improved python module error/exception reporting.
596:
597: 2008/04/23:
598: Completely rewrite igd_desc_parse.c in order to be compatible with
599: Linksys WAG200G
600: Added testigddescparse
601: updated python module
602:
603: VERSION 1.0 :
604:
605: 2008/02/21:
606: put some #ifdef DEBUG around DisplayNameValueList()
607:
608: 2008/02/18:
609: Improved error reporting in upnpcommands.c
610: UPNP_GetStatusInfo() returns LastConnectionError
611:
612: 2008/02/16:
613: better error handling in minisoap.c
614: improving display of "valid IGD found" in upnpc.c
615:
616: 2008/02/03:
617: Fixing UPNP_GetValidIGD()
618: improved make install :)
619:
620: 2007/12/22:
621: Adding upnperrors.c/h to provide a strupnperror() function
622: used to translate UPnP error codes to string.
623:
624: 2007/12/19:
625: Fixing getDevicesFromMiniSSDPD()
626: improved error reporting of UPnP functions
627:
628: 2007/12/18:
629: It is now possible to specify a different location for MiniSSDPd socket.
630: working with MiniSSDPd is now more efficient.
631: python module improved.
632:
633: 2007/12/16:
634: improving error reporting
635:
636: 2007/12/13:
637: Try to improve compatibility by using HTTP/1.0 instead of 1.1 and
638: XML a bit different for SOAP.
639:
640: 2007/11/25:
641: fixed select() call for linux
642:
643: 2007/11/15:
644: Added -fPIC to CFLAG for better shared library code.
645:
646: 2007/11/02:
647: Fixed a potential socket leak in miniwget2()
648:
649: 2007/10/16:
650: added a parameter to upnpDiscover() in order to allow the use of another
651: interface than the default multicast interface.
652:
653: 2007/10/12:
654: Fixed the creation of symbolic link in Makefile
655:
656: 2007/10/08:
657: Added man page
658:
659: 2007/10/02:
660: fixed memory bug in GetUPNPUrls()
661:
662: 2007/10/01:
663: fixes in the Makefile
664: Added UPNP_GetIGDFromUrl() and adapted the sample program accordingly.
665: Added SONAME in the shared library to please debian :)
666: fixed MS Windows compilation (minissdpd is not available under MS Windows).
667:
668: 2007/09/25:
669: small change to Makefile to be able to install in a different location
670: (default is /usr)
671:
672: 2007/09/24:
673: now compiling both shared and static library
674:
675: 2007/09/19:
676: Cosmetic changes on upnpc.c
677:
678: 2007/09/02:
679: adapting to new miniSSDPd (release version ?)
680:
681: 2007/08/31:
682: Usage of miniSSDPd to skip discovery process.
683:
684: 2007/08/27:
685: fixed python module to allow compilation with Python older than Python 2.4
686:
687: 2007/06/12:
688: Added a python module.
689:
690: 2007/05/19:
691: Fixed compilation under MinGW
692:
693: 2007/05/15:
694: fixed a memory leak in AddPortMapping()
695: Added testupnpreplyparse executable to check the parsing of
696: upnp soap messages
697: minixml now ignore namespace prefixes.
698:
699: 2007/04/26:
700: upnpc now displays external ip address with -s or -l
701:
702: 2007/04/11:
703: changed MINIUPNPC_URL_MAXSIZE to 128 to accommodate the "BT Voyager 210"
704:
705: 2007/03/19:
706: cleanup in miniwget.c
707:
708: 2007/03/01:
709: Small typo fix...
710:
711: 2007/01/30:
712: Now parsing the HTTP header from SOAP responses in order to
713: get content-length value.
714:
715: 2007/01/29:
716: Fixed the Soap Query to speedup the HTTP request.
717: added some Win32 DLL stuff...
718:
719: 2007/01/27:
720: Fixed some WIN32 compatibility issues
721:
722: 2006/12/14:
723: Added UPNPIGD_IsConnected() function in miniupnp.c/.h
724: Added UPNP_GetValidIGD() in miniupnp.c/.h
725: cleaned upnpc.c main(). now using UPNP_GetValidIGD()
726:
727: 2006/12/07:
728: Version 1.0-RC1 released
729:
730: 2006/12/03:
731: Minor changes to compile under SunOS/Solaris
732:
733: 2006/11/30:
734: made a minixml parser validator program
735: updated minixml to handle attributes correctly
736:
737: 2006/11/22:
738: Added a -r option to the upnpc sample thanks to Alexander Hubmann.
739:
740: 2006/11/19:
741: Cleanup code to make it more ANSI C compliant
742:
743: 2006/11/10:
744: detect and display local lan address.
745:
746: 2006/11/04:
747: Packets and Bytes Sent/Received are now unsigned int.
748:
749: 2006/11/01:
750: Bug fix thanks to Giuseppe D'Angelo
751:
752: 2006/10/31:
753: C++ compatibility for .h files.
754: Added a way to get ip Address on the LAN used to reach the IGD.
755:
756: 2006/10/25:
757: Added M-SEARCH to the services in the discovery process.
758:
759: 2006/10/22:
760: updated the Makefile to use makedepend, added a "make install"
761: update Makefile
762:
763: 2006/10/20:
764: fixing the description url parsing thanks to patch sent by
765: Wayne Dawe.
766: Fixed/translated some comments.
767: Implemented a better discover process, first looking
768: for IGD then for root devices (as some devices only reply to
769: M-SEARCH for root devices).
770:
771: 2006/09/02:
772: added freeUPNPDevlist() function.
773:
774: 2006/08/04:
775: More command line arguments checking
776:
777: 2006/08/01:
778: Added the .bat file to compile under Win32 with minGW32
779:
780: 2006/07/31:
781: Fixed the rootdesc parser (igd_desc_parse.c)
782:
783: 2006/07/20:
784: parseMSEARCHReply() is now returning the ST: line as well
785: starting changes to detect several UPnP devices on the network
786:
787: 2006/07/19:
788: using GetCommonLinkProperties to get down/upload bitrate
789:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>