If a dbus-daemon configured to listen on tcp, like <listen>tcp:host=*,port=0</listen>, it will fail to start like $ ./tmp_install/bin/dbus-daemon --session --print-address= --print-pid= Failed to start message bus: Failed to lookup host/port: "*:0": hostname nor servname provided, or not known (8) For more test cases, see #bug28979
The FreeBSD 9.1 man page getaddrinfo(3) says something about hostname below. The hostname and servname arguments are either pointers to NUL-terminated strings or the null pointer. An acceptable value for hostname is either a valid host name or a numeric host address string consisting of a dotted decimal IPv4 address or an IPv6 address. So "*" isn't an acceptable value for hostname.
Just tried to find how the users learn that "*" is a valid value for host, in tcp/nonce-tcp transport. However, I didn't find that in both DBus Spec or dbus-daemon(1), so I'm curious, the only said in dbus-daemon is that The bind option can also take a special name '*' to cause the bus to listen on all local address (INADDR_ANY)
Which OS(s) do consider "*" to be a valid hostname? As far as I'm concerned, the preferred syntax to express "listen on every IPv4 address" is 0.0.0.0 (which I believe is portable); omitting the "host" part entirely might also work. If "host=*,port=3000" happens to work on Windows, or on platforms with GNU libc, or some other subset of platforms (because their libc resolver resolves * to 0.0.0.0), we shouldn't forbid that; but I also think we shouldn't recommend it, or go out of our way to make it more portable. Analogously: localhost resolving to 127.0.0.1 is common, but not universal, and we should use host=127.0.0.1 in our defaults and documentation.
The only mention of '*' that I can find is this, in dbus-daemon(1): <para>tcp/nonce-tcp addresses also allow a bind=hostname option, [...] or '*' to listen on all interfaces simultaneously. <para>Example: <listen>tcp:host=localhost,bind=*,port=0</listen></para>
Created attachment 106134 [details] [review] Do not claim that '*' resolves to INADDR_ANY on all OSs
This documentation fix is a month old and has not had any comments, so I assume nobody has any objection to it. Fixed in git for 1.9.2.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.