{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":289113850,"defaultBranch":"main","name":"swift-async-dns-resolver","ownerLogin":"apple","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-08-20T21:25:07.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/10639145?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1716394709.0","currentOid":""},"activityList":{"items":[{"before":"6e94db555c71025731ee36cc68455d85e755f322","after":"08c07ff31a745ee5e522ac10132fb4949834d925","ref":"refs/heads/main","pushedAt":"2024-03-06T07:53:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Simplify AsyncDNSResolver.Error (#27)\n\nMotivation:\r\n\r\nThe 'AsyncDNSResolver.Error' is closely modelled on the c-ares error\r\ncodes and doesn't fit well with the DNSSD error codes. Further, the\r\nDNSSD backed doesn't map its error cdes back into an\r\n'AsyncDNSResolver.Error' so all DNSSD errors become 'other' errors.\r\n\r\nModifications:\r\n\r\n- Reduce the number of error codes in 'AsyncDNSResolver.Error' to a few\r\n high level error codes and a catch-all 'internal' error code.\r\n- Update mappings from c-ares error codes, add mappings from dnssd error\r\n codes.\r\n- Add a 'source' property, which can be 'any Error', allowing users to\r\n get fine grained error information if necessary.\r\n\r\nResult:\r\n\r\nError codes are more consistent across implementations.","shortMessageHtmlLink":"Simplify AsyncDNSResolver.Error (#27)"}},{"before":"b7079b75cd604bc675af080edef56b486decb155","after":"6e94db555c71025731ee36cc68455d85e755f322","ref":"refs/heads/main","pushedAt":"2024-03-05T07:57:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Don't throw on empty responses (#28)\n\nMotivation:\r\n\r\nThe AsyncDNSResolver currently throws an error when there are no records\r\nassociated with a name. However, most query responses are arrays or\r\ncontain arrays. As such it's unclear to callers whether they should be\r\ncatching an error of a particular type or checking for the presence of\r\nvalues some combination of the two.\r\n\r\nModifications:\r\n\r\n- Modify the `DNSResolver` API to return `nil` where only a single value\r\n is expected (e.g. CNAME).\r\n- Update documentation on `DNSResolver` to clarify the expected return\r\n values when no values are resolved.\r\n- Update the c-ares backend to check for no data when parsing and return\r\n empty responses\r\n- Update the DNSSD backend to pass in `nil` data to the parser when the\r\n status is timeout\r\n- Remove the `noData` error code as it shouldn't be reachable anymore\r\n\r\nResult:\r\n\r\nQueries with no response either return empty or nil","shortMessageHtmlLink":"Don't throw on empty responses (#28)"}},{"before":"d9afa74568eb11e872c660cef2f1b66c52f356d9","after":"b7079b75cd604bc675af080edef56b486decb155","ref":"refs/heads/main","pushedAt":"2024-02-21T21:51:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Fix continuation memory leak in Ares.query (#31)\n\n* Fix continuation memory leak in Ares.query\r\n\r\n* Use class for QueryReplyHandler\r\n\r\n* Deallocate QueryReplyHandler for DNSSD\r\n\r\n* Move defer block after allocate/initialize, use class\r\n\r\nMove defer deallocation block to after initialization.\r\n\r\nUse class instead of struct for DNSSD.QueryReplyHandler.","shortMessageHtmlLink":"Fix continuation memory leak in Ares.query (#31)"}},{"before":"1f5d6f46ac17e74d335b8fba668e5228510dbb8e","after":"d9afa74568eb11e872c660cef2f1b66c52f356d9","ref":"refs/heads/main","pushedAt":"2024-02-21T06:06:04.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Avoid memory leak from hostent (#30)\n\nhostent is internally allocated by ares_parse_a_reply when we pass\r\nnon-null pointer, and it expects the caller to freehostent(hostent).","shortMessageHtmlLink":"Avoid memory leak from hostent (#30)"}},{"before":"200eac116bae41fc418a6db871404fa375fec7fe","after":"1f5d6f46ac17e74d335b8fba668e5228510dbb8e","ref":"refs/heads/main","pushedAt":"2024-02-17T04:50:49.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Add missing platform availability annotation (#26)\n\nIt's missing for `DNSResolver` and results in build failing in iOS.\r\n\r\nResolves https://github.com/apple/swift-async-dns-resolver/issues/25","shortMessageHtmlLink":"Add missing platform availability annotation (#26)"}},{"before":"4d83a2c834c0a3ed74578e1afd8460984e664fcc","after":"200eac116bae41fc418a6db871404fa375fec7fe","ref":"refs/heads/main","pushedAt":"2024-02-16T09:11:41.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add public inits to record types (#23)\n\nMotivation:\r\n\r\nThe record types are public but don't have public inits, this makes it\r\nimpossible for users to implement the `DNSResolver` protocol in a useful\r\nway.\r\n\r\nThe record types are also `Equatable` but not `Hashable`. There's no\r\nreason for them not to be `Hashable`.\r\n\r\nModifications:\r\n\r\n- Add `public` `init`s to the record types\r\n- Make the record types `Hashable`\r\n\r\nResult:\r\n\r\nPossible to implement a `DNSResolver`","shortMessageHtmlLink":"Add public inits to record types (#23)"}},{"before":"96a18c67687e814edce555c86b1471c05345cb66","after":"4d83a2c834c0a3ed74578e1afd8460984e664fcc","ref":"refs/heads/main","pushedAt":"2024-02-16T08:38:45.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Split error message from code (#24)\n\nMotivation:\r\n\r\nUsers can't check the code of an `AsyncDNSResolver.Error` because it's\r\nbacked by an internal enum carrying a message as its associated data.\r\n\r\nModifications:\r\n\r\n- Rework `AsyncDNSResolver.Error` so that the code is separate from the\r\n message.\r\n\r\nResult:\r\n\r\nUsers can programattically take action based on the code of an error","shortMessageHtmlLink":"Split error message from code (#24)"}},{"before":"62fbedd992abf97e83549dde7c7cf9ab7b74c8d8","after":"96a18c67687e814edce555c86b1471c05345cb66","ref":"refs/heads/main","pushedAt":"2024-02-14T08:07:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Add concrete IPv4 and IPv6 types (#21)\n\nMotivation:\r\n\r\nThe `ARecord` and `AAAARecord` use the `IPAddress` `enum` as their\r\naddress types. However, they should only use IPv4 and IPv6 addresses\r\nrespectively.\r\n\r\nModifications:\r\n\r\n- Add `IPAddress.IPv4` and IPAddress.IPv6` types and use them as the\r\n associated values in the `IPAddress` enum\r\n- Change the casing of the `IPAddress` cases from `.IPv4` and `.IPv6` to\r\n `.ipv4` and `.ipv6` as Swift case names are usually lower-camel case\r\n\r\nResult:\r\n\r\n- The types of IP address used by `ARecord` and `AAAARecord` are clearer","shortMessageHtmlLink":"Add concrete IPv4 and IPv6 types (#21)"}},{"before":"e8f3efc2daafd9f97c8e9bd3cd1d8bc66f63079d","after":"62fbedd992abf97e83549dde7c7cf9ab7b74c8d8","ref":"refs/heads/main","pushedAt":"2024-02-14T08:02:00.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Move platform availability to types (#22)\n\nMotivation:\r\nHaving `platforms` in `Package.swift` might prevent others from adopting this library.\r\n\r\nModifications:\r\n- Move platform availability to types\r\n- Remove `platforms` in `Package.swift`\r\n- macOS 10.15 seems to be sufficient, so lowering it from v13.0","shortMessageHtmlLink":"Move platform availability to types (#22)"}},{"before":"66b7dc7ba7c2b8ece38cf0e5162f99bc1c05886e","after":"e8f3efc2daafd9f97c8e9bd3cd1d8bc66f63079d","ref":"refs/heads/main","pushedAt":"2024-02-13T18:10:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"glbrntt","name":"George Barnett","path":"/glbrntt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/5047671?s=80&v=4"},"commit":{"message":"Remove NIO dependency (#20)\n\nMotivation:\r\n\r\nNIO's ByteBuffer is used as an implementation detail for parsing\r\nresponses in the DNSD implementation. However NIO is quite a heavy\r\ndependency so we should avoid it if possible.\r\n\r\nModifications:\r\n\r\n- Use `ArraySlice` instead of `ByteBuffer` and remove the\r\n dependency on SwiftNIO\r\n\r\nResult:\r\n\r\nNo dependency on SwiftNIO","shortMessageHtmlLink":"Remove NIO dependency (#20)"}},{"before":"26dae18e2caf59d2202894237e14d98a3b2a98c0","after":"66b7dc7ba7c2b8ece38cf0e5162f99bc1c05886e","ref":"refs/heads/main","pushedAt":"2024-02-08T02:49:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Add iOS(13) to list of platforms (#19)\n\nResolves https://github.com/apple/swift-async-dns-resolver/issues/17","shortMessageHtmlLink":"Add iOS(13) to list of platforms (#19)"}},{"before":"95fda8963c21db6a8643e9e5fec43d6ca5f0af41","after":"26dae18e2caf59d2202894237e14d98a3b2a98c0","ref":"refs/heads/main","pushedAt":"2024-02-07T02:44:07.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Cancel polling task on deinit (#16)\n\n* Cancel polling task on deinit\r\n\r\nhttps://github.com/apple/swift-async-dns-resolver/issues/15\r\n\r\n* Apply @dieb's suggestion","shortMessageHtmlLink":"Cancel polling task on deinit (#16)"}},{"before":"5aa112c3d978c7b84ac72f2b6b36f3aa2e9fd361","after":"95fda8963c21db6a8643e9e5fec43d6ca5f0af41","ref":"refs/heads/main","pushedAt":"2024-01-09T20:58:19.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Fix bug in DNSSD IPv6 address string conversion. (#14)\n\n* Fix bug in DNSSD IPv6 address string conversion.\r\n\r\nThe old implementation converted each byte to a hexadecimal number\r\nseparately, meaning that leading zeros in a byte would be dropped\r\neven in the middle of a group.\r\n\r\nFor example, the address 2620:149:110b:470e:0:0:0:e1a was incorrectly\r\nrendered as 2620:149:11b:47e:0:0:0:e1a, with zeros dropped\r\nin the 3rd and 4th octets.\r\n\r\nI figured the most robust fix would be to use inet_ntop to format the\r\naddress, which produces a correctly abbreviated address like\r\n2620:149:110b:470e::e1a. This is the approach used in DNSResolver_c-ares.swift.\r\n\r\n* Throw error when too-short address is returned\r\n\r\n* Fix formatting issues\r\n\r\n* Print an error in soundness.sh if swiftformat is not installed\r\n\r\n---------\r\n\r\nCo-authored-by: Torin Rudeen ","shortMessageHtmlLink":"Fix bug in DNSSD IPv6 address string conversion. (#14)"}},{"before":"3c1aae47d24efdc42dcec39c22336a3bbbcf4c76","after":"5aa112c3d978c7b84ac72f2b6b36f3aa2e9fd361","ref":"refs/heads/main","pushedAt":"2023-12-06T21:42:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Make result types Sendable (#13)\n\n* Make result types Sendable\r\n\r\n* Add Equatable conformance","shortMessageHtmlLink":"Make result types Sendable (#13)"}},{"before":"5e70cd75b93d9cd68d185accaf958f5dcb8ab14b","after":"3c1aae47d24efdc42dcec39c22336a3bbbcf4c76","ref":"refs/heads/main","pushedAt":"2023-10-06T22:23:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Reduce unstructured task (#12)\n\n* Reduce unstructured Task usage\r\n\r\nMotivation:\r\nFeedback from @FranzBusch\r\n\r\nModification:\r\nUse lock instead of actor to control access to `ares_channel`.\r\n\r\n* Handle task cancellation","shortMessageHtmlLink":"Reduce unstructured task (#12)"}},{"before":"bb64631bda911d0834e8c0b036fa949e34c8dfb1","after":"5e70cd75b93d9cd68d185accaf958f5dcb8ab14b","ref":"refs/heads/main","pushedAt":"2023-09-28T22:10:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Update CI pipelines (#11)\n\nAlso add .spi.yml for hosting docs on SPI.com.","shortMessageHtmlLink":"Update CI pipelines (#11)"}},{"before":"ab6d9f87ea985273bea2e4297382642dfa9e5cd7","after":"bb64631bda911d0834e8c0b036fa949e34c8dfb1","ref":"refs/heads/main","pushedAt":"2023-06-27T01:17:26.442Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Add c-ares to NOTICE (#10)","shortMessageHtmlLink":"Add c-ares to NOTICE (#10)"}},{"before":"c5d9b79d3d2565b0042e6756cb8d6c0bd642b26b","after":"ab6d9f87ea985273bea2e4297382642dfa9e5cd7","ref":"refs/heads/main","pushedAt":"2023-06-26T21:53:34.378Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Documentations (#9)\n\n* Documentations\r\n\r\n* Fix formatting","shortMessageHtmlLink":"Documentations (#9)"}},{"before":"5e8afd564afd4a55cf91a84743cd27146d3caa92","after":"c5d9b79d3d2565b0042e6756cb8d6c0bd642b26b","ref":"refs/heads/main","pushedAt":"2023-06-13T16:46:39.926Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Use dnssd framework on Darwin platforms (#8)\n\n* Use dnssd framework on Darwin platforms\r\n\r\nAdd `DNSResolver` protocol with two implementations: one backed by c-ares and the other dnssd. Use `dnssd` implementation on Darwin platforms by default.\r\n\r\n* Address review feedback","shortMessageHtmlLink":"Use dnssd framework on Darwin platforms (#8)"}},{"before":"3fbcc27c5fd4cf3f866dc437d691d52092b1e804","after":"5e8afd564afd4a55cf91a84743cd27146d3caa92","ref":"refs/heads/main","pushedAt":"2023-05-27T18:55:17.307Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Adopt Swift structured concurrency (#7)\n\n* Adopt Swift structured concurrency\r\n\r\n- Change public API to async/await\r\n- Additional c-ares options and errors\r\n- Fix bug in A and AAAA queries\r\n\r\n* Remove usage of Duration\r\n\r\n* Address feedback comment","shortMessageHtmlLink":"Adopt Swift structured concurrency (#7)"}},{"before":"e1ba62eaec4bf6f37036f73d5d59c5b89027176b","after":"3fbcc27c5fd4cf3f866dc437d691d52092b1e804","ref":"refs/heads/main","pushedAt":"2023-05-26T20:06:06.919Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"yim-lee","name":"Yim Lee","path":"/yim-lee","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/12647725?s=80&v=4"},"commit":{"message":"Update c-ares to 1.19.1 (#6)\n\n* Update c-ares to 1.19.1\r\n\r\n* Handle year 2023\r\n\r\n* Update swiftformat version","shortMessageHtmlLink":"Update c-ares to 1.19.1 (#6)"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEDaimcgA","startCursor":null,"endCursor":null}},"title":"Activity ยท apple/swift-async-dns-resolver"}