@@ -134,35 +134,21 @@ See examples directory for more.
134134Changelog
135135=========
136136
137- 0.33.0 (Unreleased)
138- ===================
139-
140- * Breaking change: zeroconf.asyncio has been removed in favor of zeroconf.aio - TBD
141-
142- The asyncio name could shadow system asyncio in some cases. If
143- zeroconf is in sys.path, this would result in loading zeroconf.asyncio
144- when system asyncio was intended.
145-
1461370.32.0 (Unreleased)
147138===================
148139
149- * Breaking change : zeroconf.asyncio has been renamed zeroconf.aio (#503) @bdraco
140+ * BREAKING CHANGE : zeroconf.asyncio has been renamed zeroconf.aio (#503) @bdraco
150141
151142 The asyncio name could shadow system asyncio in some cases. If
152143 zeroconf is in sys.path, this would result in loading zeroconf.asyncio
153144 when system asyncio was intended.
154145
155- An `zeroconf.asyncio ` shim module has been added that imports `zeroconf.aio `
156- that was available in 0.31 to provide backwards compatibility in 0.32.0
157- This module will be removed in 0.33.0 to fix the underlying problem
158- detailed in #502
159-
160- * Breaking change: Update internal version check to match docs (3.6+) (#491) @bdraco
146+ * BREAKING CHANGE: Update internal version check to match docs (3.6+) (#491) @bdraco
161147
162148 Python version eariler then 3.6 were likely broken with zeroconf
163149 already, however the version is now explictly checked.
164150
165- * Breaking change : RecordUpdateListener now uses update_records instead of update_record (#419) @bdraco
151+ * BREAKING CHANGE : RecordUpdateListener now uses update_records instead of update_record (#419) @bdraco
166152
167153 This allows the listener to receive all the records that have
168154 been updated in a single transaction such as a packet or
@@ -181,15 +167,15 @@ Changelog
181167 has been updated as its a common pattern to call for
182168 ServiceInfo when a ServiceBrowser handler fires.
183169
184- * Breaking change : Ensure listeners do not miss initial packets if Engine starts too quickly (#387) @bdraco
170+ * BREAKING CHANGE : Ensure listeners do not miss initial packets if Engine starts too quickly (#387) @bdraco
185171
186172 When manually creating a zeroconf.Engine object, it is no longer started automatically.
187173 It must manually be started by calling .start() on the created object.
188174
189175 The Engine thread is now started after all the listeners have been added to avoid a
190176 race condition where packets could be missed at startup.
191177
192- * Breaking change : Remove DNSOutgoing.packet backwards compatibility (#569) @bdraco
178+ * BREAKING CHANGE : Remove DNSOutgoing.packet backwards compatibility (#569) @bdraco
193179
194180 DNSOutgoing.packet only returned a partial message when the
195181 DNSOutgoing contents exceeded _MAX_MSG_ABSOLUTE or _MAX_MSG_TYPICAL
@@ -198,6 +184,75 @@ Changelog
198184 should not be used since it will end up missing data, it has
199185 been removed
200186
187+ * TRAFFIC REDUCTION: Add support for handling QU questions (#621) @bdraco
188+
189+ Implements RFC 6762 sec 5.4:
190+ Questions Requesting Unicast Responses
191+ datatracker.ietf.org/doc/html/rfc6762#section-5.4
192+
193+ * TRAFFIC REDUCTION: Protect the network against excessive packet flooding (#619) @bdraco
194+
195+ * TRAFFIC REDUCTION: Suppress additionals when they are already in the answers section (#617) @bdraco
196+
197+ * TRAFFIC REDUCTION: Avoid including additionals when the answer is suppressed by known-answer supression (#614) @bdraco
198+
199+ * MAJOR BUG: Ensure matching PTR queries are returned with the ANY query (#618) @bdraco
200+
201+ * MAJOR BUG: Fix lookup of uppercase names in registry (#597) @bdraco
202+
203+ If the ServiceInfo was registered with an uppercase name and the query was
204+ for a lowercase name, it would not be found and vice-versa.
205+
206+ * MAJOR BUG: Ensure unicast responses can be sent to any source port (#598) @bdraco
207+
208+ Unicast responses were only being sent if the source port
209+ was 53, this prevented responses when testing with dig:
210+
211+ dig -p 5353 @224.0.0.251 media-12.local
212+
213+ The above query will now see a response
214+
215+ * MAJOR BUG: Fix queries for AAAA records (#616) @bdraco
216+
217+ * Eliminate aio sender thread (#622) @bdraco
218+
219+ * Replace select loop with asyncio loop (#504) @bdraco
220+
221+ * Add is_recent property to DNSRecord (#620) @bdraco
222+
223+ RFC 6762 defines recent as not multicast within one quarter of its TTL
224+ datatracker.ietf.org/doc/html/rfc6762#section-5.4
225+
226+ * Breakout the query response handler into its own class (#615) @bdraco
227+
228+ * Add the ability for ServiceInfo.dns_addresses to filter by address type (#612) @bdraco
229+
230+ * Make DNSRecords hashable (#611) @bdraco
231+
232+ Allows storing them in a set for de-duplication
233+
234+ Needed to be able to check for duplicates to solve #604
235+
236+ * Ensure the QU bit is set for probe queries (#609) @bdraco
237+
238+ The bit should be set per
239+ datatracker.ietf.org/doc/html/rfc6762#section-8.1
240+
241+ * Log destination when sending packets (#606) @bdraco
242+
243+ * Fix docs version to match readme (cpython 3.6+) (#602) @bdraco
244+
245+ * Add ZeroconfServiceTypes to zeroconf.__all__ (#601) @bdraco
246+
247+ This class is in the readme, but is not exported by
248+ default
249+
250+ * Add id _ param to allow setting the id in the DNSOutgoing constructor (#599) @bdraco
251+
252+ * Add unicast property to DNSQuestion to determine if the QU bit is set (#593) @bdraco
253+
254+ * Reduce branching in DNSOutgoing.add_answer_at_time (#592) @bdraco
255+
201256* Breakout DNSCache into zeroconf.cache (#568) @bdraco
202257
203258* Removed protected imports from zeroconf namespace (#567) @bdraco
0 commit comments