zeroconf/Bonjour: pass a context pointer to the callback
This commit is contained in:
parent
a7e697b588
commit
ceb76b6a82
@ -88,7 +88,7 @@ RegisterBonjour(const char *name, const char *type, unsigned port,
|
|||||||
|
|
||||||
BonjourHelper::BonjourHelper(EventLoop &_loop, const char *name, unsigned port)
|
BonjourHelper::BonjourHelper(EventLoop &_loop, const char *name, unsigned port)
|
||||||
:service_ref(RegisterBonjour(name, SERVICE_TYPE, port,
|
:service_ref(RegisterBonjour(name, SERVICE_TYPE, port,
|
||||||
Callback, nullptr)),
|
Callback, this)),
|
||||||
socket_event(_loop,
|
socket_event(_loop,
|
||||||
BIND_THIS_METHOD(OnSocketReady),
|
BIND_THIS_METHOD(OnSocketReady),
|
||||||
SocketDescriptor(DNSServiceRefSockFD(service_ref)))
|
SocketDescriptor(DNSServiceRefSockFD(service_ref)))
|
||||||
@ -106,11 +106,13 @@ BonjourHelper::Callback([[maybe_unused]] DNSServiceRef sdRef,
|
|||||||
[[maybe_unused]] const char *domain,
|
[[maybe_unused]] const char *domain,
|
||||||
[[maybe_unused]] void *context) noexcept
|
[[maybe_unused]] void *context) noexcept
|
||||||
{
|
{
|
||||||
|
auto &helper = *(BonjourHelper *)context;
|
||||||
|
|
||||||
if (errorCode != kDNSServiceErr_NoError) {
|
if (errorCode != kDNSServiceErr_NoError) {
|
||||||
LogError(bonjour_domain,
|
LogError(bonjour_domain,
|
||||||
"Failed to register zeroconf service");
|
"Failed to register zeroconf service");
|
||||||
|
|
||||||
bonjour_monitor->Cancel();
|
helper.Cancel();
|
||||||
} else {
|
} else {
|
||||||
FormatDebug(bonjour_domain,
|
FormatDebug(bonjour_domain,
|
||||||
"Registered zeroconf service with name '%s'",
|
"Registered zeroconf service with name '%s'",
|
||||||
|
Loading…
Reference in New Issue
Block a user