fix(mdns): don't hardcode mDNS instance name (#3084)
This commit is contained in:
@@ -426,7 +426,8 @@ namespace platf::publish {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
name.reset(avahi::strdup(SERVICE_NAME));
|
||||
auto instance_name = net::mdns_instance_name(boost::asio::ip::host_name());
|
||||
name.reset(avahi::strdup(instance_name.c_str()));
|
||||
|
||||
client.reset(
|
||||
avahi::client_new(avahi::simple_poll_get(poll.get()), avahi::ClientFlags(0), client_callback, nullptr, &avhi_error));
|
||||
|
||||
@@ -105,7 +105,8 @@ namespace platf::publish {
|
||||
&serviceRef,
|
||||
0, // flags
|
||||
0, // interfaceIndex
|
||||
SERVICE_NAME, SERVICE_TYPE,
|
||||
nullptr, // name
|
||||
SERVICE_TYPE,
|
||||
nullptr, // domain
|
||||
nullptr, // host
|
||||
htons(net::map_port(nvhttp::PORT_HTTP)),
|
||||
|
||||
@@ -37,7 +37,6 @@ constexpr auto DNS_QUERY_RESULTS_VERSION1 = 0x1;
|
||||
|
||||
#define SERVICE_DOMAIN "local"
|
||||
|
||||
constexpr auto SERVICE_INSTANCE_NAME = SV(SERVICE_NAME "." SERVICE_TYPE "." SERVICE_DOMAIN);
|
||||
constexpr auto SERVICE_TYPE_DOMAIN = SV(SERVICE_TYPE "." SERVICE_DOMAIN);
|
||||
|
||||
#ifndef __MINGW32__
|
||||
@@ -107,10 +106,11 @@ namespace platf::publish {
|
||||
service(bool enable, PDNS_SERVICE_INSTANCE &existing_instance) {
|
||||
auto alarm = safe::make_alarm<PDNS_SERVICE_INSTANCE>();
|
||||
|
||||
std::wstring name { SERVICE_INSTANCE_NAME.data(), SERVICE_INSTANCE_NAME.size() };
|
||||
std::wstring domain { SERVICE_TYPE_DOMAIN.data(), SERVICE_TYPE_DOMAIN.size() };
|
||||
|
||||
auto host = from_utf8(boost::asio::ip::host_name() + ".local");
|
||||
auto hostname = boost::asio::ip::host_name();
|
||||
auto name = from_utf8(net::mdns_instance_name(hostname) + '.') + domain;
|
||||
auto host = from_utf8(hostname + ".local");
|
||||
|
||||
DNS_SERVICE_INSTANCE instance {};
|
||||
instance.pszInstanceName = name.data();
|
||||
|
||||
Reference in New Issue
Block a user