blob: c59d554566236e7a15e90ed5ccc0181c459b8560 [file] [log] [blame]
// Copyright (c) FIRST and other WPILib contributors.
// Open Source Software; you can modify and/or share it under the terms of
// the WPILib BSD license file in the root directory of this project.
#include "DynamicDns.h"
using namespace wpi;
DynamicDns& DynamicDns::GetDynamicDns() {
static DynamicDns dns;
return dns;
}
DynamicDns::DynamicDns() {
HMODULE library = LoadLibraryW(L"dnsapi");
if (library == nullptr) {
return;
}
DnsServiceFreeInstancePtr = (DnsServiceFreeInstanceFunc)GetProcAddress(
library, "DnsServiceFreeInstance");
DnsServiceConstructInstancePtr =
(DnsServiceConstructInstanceFunc)GetProcAddress(
library, "DnsServiceConstructInstance");
DnsServiceRegisterPtr =
(DnsServiceRegisterFunc)GetProcAddress(library, "DnsServiceRegister");
DnsServiceDeRegisterPtr =
(DnsServiceDeRegisterFunc)GetProcAddress(library, "DnsServiceDeRegister");
CanDnsAnnounce = DnsServiceFreeInstancePtr &&
DnsServiceConstructInstancePtr && DnsServiceRegisterPtr &&
DnsServiceDeRegisterPtr;
DnsServiceBrowsePtr =
(DnsServiceBrowseFunc)GetProcAddress(library, "DnsServiceBrowse");
DnsServiceBrowseCancelPtr = (DnsServiceBrowseCancelFunc)GetProcAddress(
library, "DnsServiceBrowseCancel");
CanDnsResolve = DnsServiceBrowsePtr && DnsServiceBrowseCancelPtr;
}