For original: * PyPI page https://pypi.python.org/pypi/zeroconf * GitHub project https://github.com/jstasiak/python-zeroconf
- Bugfix: allow underscores in instance name prefix (RFC 6763 - 4.1.1)
- Allowed installation with netifaces >= 0.10.6 (a bug that was concerning us got fixed)
- Technically backwards incompatible - restricted netifaces dependency version to work around a bug, see python-zeroconf#84 for details
- Dropped Python 2.6 support
- Improved error handling inside code executed when Zeroconf object is being closed
- Better Handling of DNS Incoming Packets parsing exceptions
- Many exceptions will now log a warning the first time they are seen
- Catch and log sendto() errors
- Fix/Implement duplicate name change
- Fix overly strict name validation introduced in 0.17.6
- Greatly improve handling of oversized packets including:
- Implement name compression per RFC1035
- Limit size of generated packets to 9000 bytes as per RFC6762
- Better handle over sized incoming packets
- Increased test coverage to 95%
- Many improvements to address race conditions and exceptions during ZC() startup and shutdown, thanks to: morpav, veawor, justingiorgi, herczy, stephenrauch
- Added more test coverage: strahlex, stephenrauch
- Stephen Rauch contributed:
- Speed up browser startup
- Add ZeroconfServiceTypes() query class to discover all advertised service types
- Add full validation for service names, types and subtypes
- Fix for subtype browsing
- Fix DNSHInfo support
- Fixed OpenBSD compatibility, thanks to Alessio Sergi
- Fixed race condition on ServiceBrowser startup, thanks to gbiddison
- Fixed installation on some Python 3 systems, thanks to Per Sandström
- Fixed "size change during iteration" bug on Python 3, thanks to gbiddison
- Fixed support for Linux kernel versions < 3.9 (thanks to Giovanni Harting and Luckydonald, GitHub pull request #26)
- Fixed DNSText repr on Python 3 (it'd crash when the text was longer than 10 bytes), thanks to Paulus Schoutsen for the patch, GitHub pull request #24
- Fixed installation on Python 3.4.3+ (was failing because of enum34 dependency which fails to install on 3.4.3+, changed to depend on enum-compat instead; thanks to Michael Brennan for the original patch, GitHub pull request #22)
- Fixed EADDRNOTAVAIL when attempting to use dummy network interfaces on Windows, thanks to daid
- Added some Python dependencies so it's not zero-dependencies anymore
- Improved exception handling (it'll be quieter now)
- Messages are listened to and sent using all available network interfaces by default (configurable); thanks to Marcus Müller
- Started using logging more freely
- Fixed a bug with binary strings as property values being converted to False (python-zeroconf#10); thanks to Dr. Seuss
- Added new
ServiceBrowser
event handler interface (see the examples) - PyPy3 now officially supported
- Fixed ServiceInfo repr on Python 3, thanks to Yordan Miladinov
- Set up Python logging and started using it
- Cleaned up code style (includes migrating from camel case to snake case)
- Fixed handling closed socket (GitHub #4)
- Forked by Jakub Stasiak
- Made Python 3 compatible
- Added setup script, made installable by pip and uploaded to PyPI
- Set up Travis build
- Reformatted the code and moved files around
- Stopped catching BaseException in several places, that could hide errors
- Marked threads as daemonic, they won't keep application alive now
- Fix for SOL_IP undefined on some systems - thanks Mike Erdely.
- Cleaned up examples.
- Lowercased module name.
- Various minor changes; see git for details.
- No longer compatible with Python 2.2. Only tested with 2.5-2.7.
- Fork by William McBrine.
- allow selection of binding interface
- typo fix - Thanks A. M. Kuchlingi
- removed all use of word 'Rendezvous' - this is an API change
- correction to comments for addListener method
- support for new record types seen from OS X - IPv6 address - hostinfo
- ignore unknown DNS record types
- fixes to name decoding
- works alongside other processes using port 5353 (e.g. on Mac OS X)
- tested against Mac OS X 10.3.2's mDNSResponder
- corrections to removal of list entries for service browser
- Jonathon Paisley contributed these corrections:
- always multicast replies, even when query is unicast
- correct a pointer encoding problem
- can now write records in any order
- traceback shown on failure
- better TXT record parsing
- server is now separate from name
- can cancel a service browser
- modified some unit tests to accommodate these changes
- remove all records on service unregistration
- fix DOS security problem with readName
- changed licensing to LGPL
- faster shutdown on engine
- pointer encoding of outgoing names
- ServiceBrowser now works
- new unit tests
- small improvements with unit tests
- added defined exception types
- new style objects
- fixed hostname/interface problem
- fixed socket timeout problem
- fixed add_service_listener() typo bug
- using select() for socket reads
- tested on Debian unstable with Python 2.2.2
- ensure case insensitivty on domain names
- support for unicast DNS queries
- added some unit tests
- added __ne__ adjuncts where required
- ensure names end in '.local.'
- timeout on receiving socket for clean shutdown
LGPL, see COPYING file for details.