mdns_dart 2.2.1
mdns_dart: ^2.2.1 copied to clipboard
A comprehensive mDNS (Multicast DNS) service discovery and advertisement library for Dart, ported from HashiCorp Go implementation.
2.2.1 #
- Refactored
MDNSService.createto avoid filtering out explicitly provided IP addresses.
2.2.0 #
- Refactored
MDNSService.createto use usableInternetAddressfromNetworkInterfaceby default. (#13) - Fixed IPv6 serialization for
AAAARecordto ensure correct formatting in mDNS responses. (#11) - Added simple integration tests to verify full client-to-server discovery workflows.
- Added unit tests for DNS message parsing.
- Added unit tests for
QuerySession,MDNSService,MDNSService.createandMDNSService.records. - Added unit tests for
trimDotandisValidFQDNutility functions. - Extracted mDNS query record assembly and state management logic into a new
QuerySessionclass. - Refactored
trimDotandisValidFQDNhelpers tosrc/utils.dartand made them public. - Updated
ServiceEntry.addrV4andServiceEntry.addrV6to usefirstOrNullforBad State: No elementerror. - Removed print as default logging for
MDNSServerand relied on user-provided logger instead.
2.1.0 #
- Added note on client_docker0.dart example about unicast responses in Docker environments.
- Added missing logic to bind the IPv6 unicast socket to the interface's specific IP address.
- Bound unicast sockets to the specific IP address of the selected network interface on initialization.
- Refactored
_initializefrom_Clientand split into_bindUnicastSocketand_bindMulticastSocketfor better maintainability.
2.0.1 #
- Refactored
_createResponsefromMDNSServerto useDNSFlagsconstants for clarity. - Improved documentation for
QueryParams.serviceparameter to clarify expected format. - Reformatted all code for improved consistency and readability.
2.0.0 #
- Changed the default value of
reusePorttofalse. Implementations that require port reuse must now explicitly setreusePort: true. (#6) - Lowered minimum Dart SDK constraint to
^3.0.0for wider compatibility. (#5) - Significantly simplified the
discovermethod by removing redundant timeout, result, and error handling logic. - Removed the unused
entriesControllerproperty fromQueryParams. - Cleaned up the
QueryParams.defaultForfactory to remove redundant default values. - Fixed incorrect placement of the documentation for the
setMulticastInterfaceextension method. - Added a note to
QueryParams.reusePortregarding potential socket binding issues on Android.
1.1.1 #
- Reformatted all code for improved consistency and readability.
- Enhanced error handling and logging for mDNS query sending over IPv4 and IPv6
_sendQuerynow throws aStateErrorif mDNS query sending fails for both IPv4 and IPv6.
1.1.0 #
- Added support for multiple addresses in a
ServiceEntry - Added filtering to ignore non-service related mDNS packets
- Added NSEC record support with proper type 47 handling per RFC 4034
- Improved unknown record type handling with explicit logging
1.0.5 #
- Updated package description to specify support for both mDNS service discovery and advertisement.
1.0.4 #
- Added configurable socket options:
reusePort,reuseAddress, andmulticastHops - Added comprehensive logging support for debugging network issues
- Minimized example files for cleaner demonstration
- Formatted for improved readability
1.0.3 #
- Updated
README.mdwith improved feature comparison table and refined examples. - Improved example/example.md
1.0.2 #
- Exported
src/server.dartin the public API (lib/mdns_dart.dart) for direct access to mDNS server functionality.
1.0.1 #
- Fixed deprecated
multicastInterfaceusage with modernsetRawOptionimplementation
1.0.0 #
- Initial release: Port of HashiCorp's mDNS to Dart
- Comprehensive mDNS service discovery with full protocol support
- Interface binding for cross-network discovery
- Support for both IPv4 and IPv6
- Docker/bridge network compatibility
- Full mDNS server for service advertising
- Pure Dart implementation with no native dependencies