Skip to content

@troglobit troglobit released this Aug 22, 2018 · 4 commits to master since this release

Huge thanks to Jeremie Miller, @quartzjer, for the original mDNS implementation, to Stefan Profanter, @Pro, for fixing the code from the early days, and also to Thom Nichols, @thom-nic, for careful testing and nudging me to finalize the work and get a proper release out there.

Apologies for the terse change log, there are a lot of changes to Jer's original, in a sense this is a brand new project. This is a pre-release of the upcoming v1.0 with some important to remember limitations:

  • no IPv6,
  • only handles one interface (no multi-homing), and
  • only one A record can be announced per service


  • Added support for systemd unit file
  • Added example SSH service record in /etc/mdns.d/ssh.service
  • Added support for building Debian/Ubuntu .deb packages
  • Renamed example mhttp appliation to mdnsd
  • Added support for running as a proper UNIX daemon
  • Added support for logging to syslog
  • Added proper option parsing
  • Added configuration file support, or rather DNS record file support
  • Added GNU configure & build system to ease building and portability
  • Added support for mDNS-SD service discovery/enumeration, i.e., the mdns-scan tool finds and reports services mdnsd announces
  • Added support for announcing multiple service records


  • Build fixes for recent versions of clang and gcc
  • Build fixes for Alpine Linux and other musl libc based systems
  • Default IP TTL value for multicast frames ( is now 1
  • Fixed endian problems and other issues with mdns_set_ip()
  • Fixed triggering of unicast reply to mDNS query due to missing ntohs()
  • Fixed service record TTLs; 120 and 4500 are RFC recommended values
  • Fixed memory leaks
Assets 8
You can’t perform that action at this time.