aboutsummaryrefslogtreecommitdiff
path: root/osp/impl/discovery/mdns/mdns_responder_platform.cc
diff options
context:
space:
mode:
Diffstat (limited to 'osp/impl/discovery/mdns/mdns_responder_platform.cc')
-rw-r--r--osp/impl/discovery/mdns/mdns_responder_platform.cc290
1 files changed, 0 insertions, 290 deletions
diff --git a/osp/impl/discovery/mdns/mdns_responder_platform.cc b/osp/impl/discovery/mdns/mdns_responder_platform.cc
deleted file mode 100644
index 14204ff5..00000000
--- a/osp/impl/discovery/mdns/mdns_responder_platform.cc
+++ /dev/null
@@ -1,290 +0,0 @@
-// Copyright 2018 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "osp/impl/discovery/mdns/mdns_responder_platform.h"
-
-#include <algorithm>
-#include <chrono>
-#include <cstring>
-#include <limits>
-#include <vector>
-
-#include "platform/api/network_interface.h"
-#include "platform/api/time.h"
-#include "platform/api/udp_socket.h"
-#include "platform/base/error.h"
-#include "platform/base/ip_address.h"
-#include "third_party/mDNSResponder/src/mDNSCore/mDNSEmbeddedAPI.h"
-#include "util/osp_logging.h"
-
-namespace {
-
-using std::chrono::duration_cast;
-using std::chrono::hours;
-using std::chrono::milliseconds;
-using std::chrono::seconds;
-
-} // namespace
-
-extern "C" {
-
-const char ProgramName[] = "openscreen";
-
-mDNSs32 mDNSPlatformOneSecond = 1000;
-
-mStatus mDNSPlatformInit(mDNS* m) {
- mDNSCoreInitComplete(m, mStatus_NoError);
- return mStatus_NoError;
-}
-
-void mDNSPlatformClose(mDNS* m) {}
-
-mStatus mDNSPlatformSendUDP(const mDNS* m,
- const void* msg,
- const mDNSu8* last,
- mDNSInterfaceID InterfaceID,
- UDPSocket* src,
- const mDNSAddr* dst,
- mDNSIPPort dstport) {
- auto* const socket = reinterpret_cast<openscreen::UdpSocket*>(InterfaceID);
- const auto socket_it =
- std::find(m->p->sockets.begin(), m->p->sockets.end(), socket);
- if (socket_it == m->p->sockets.end())
- return mStatus_BadInterfaceErr;
-
- openscreen::IPEndpoint dest{
- openscreen::IPAddress{dst->type == mDNSAddrType_IPv4
- ? openscreen::IPAddress::Version::kV4
- : openscreen::IPAddress::Version::kV6,
- dst->ip.v4.b},
- static_cast<uint16_t>((dstport.b[0] << 8) | dstport.b[1])};
- const int64_t length = last - static_cast<const uint8_t*>(msg);
- if (length < 0 || length > std::numeric_limits<ssize_t>::max()) {
- return mStatus_BadParamErr;
- }
-
- // UDP is inherently lossy, so don't worry about async failures and let the
- // underlying protocol handle it.
- (*socket_it)->SendMessage(msg, length, dest);
- return mStatus_NoError;
-}
-
-void mDNSPlatformLock(const mDNS* m) {
- // We're single threaded.
-}
-
-void mDNSPlatformUnlock(const mDNS* m) {}
-
-void mDNSPlatformStrCopy(void* dst, const void* src) {
- // Unfortunately, the caller is responsible for making sure that dst
- // if of sufficient length to store the src string. Otherwise we may
- // cause an access violation.
- std::strcpy(static_cast<char*>(dst), // NOLINT
- static_cast<const char*>(src));
-}
-
-mDNSu32 mDNSPlatformStrLen(const void* src) {
- return std::strlen(static_cast<const char*>(src));
-}
-
-void mDNSPlatformMemCopy(void* dst, const void* src, mDNSu32 len) {
- std::memcpy(dst, src, len);
-}
-
-mDNSBool mDNSPlatformMemSame(const void* dst, const void* src, mDNSu32 len) {
- return std::memcmp(dst, src, len) == 0 ? mDNStrue : mDNSfalse;
-}
-
-void mDNSPlatformMemZero(void* dst, mDNSu32 len) {
- std::memset(dst, 0, len);
-}
-
-void* mDNSPlatformMemAllocate(mDNSu32 len) {
- return malloc(len);
-}
-
-void mDNSPlatformMemFree(void* mem) {
- free(mem);
-}
-
-mDNSu32 mDNSPlatformRandomSeed() {
- return std::chrono::steady_clock::now().time_since_epoch().count();
-}
-
-mStatus mDNSPlatformTimeInit() {
- return mStatus_NoError;
-}
-
-mDNSs32 mDNSPlatformRawTime() {
- using openscreen::Clock;
-
- const Clock::time_point now = Clock::now();
-
- // A signed 32-bit integer counting milliseconds only gives ~24.8 days of
- // range. Thus, the first time this function is called, record a new origin
- // timestamp to subtract from the raw monotonic clock values. The "one hour
- // before now" value is used to keep the results well-ahead of zero because
- // the mDNS library assumes this is the time since kernel boot and has hacks
- // to disable certain things in the first few minutes. :-/
- static const Clock::time_point origin = now - hours(1);
-
- const int64_t millis_since_origin =
- duration_cast<milliseconds>(now - origin).count();
- OSP_CHECK_LE(millis_since_origin, std::numeric_limits<mDNSs32>::max());
- return static_cast<mDNSs32>(millis_since_origin);
-}
-
-mDNSs32 mDNSPlatformUTC() {
- const auto seconds_since_epoch =
- duration_cast<seconds>(openscreen::GetWallTimeSinceUnixEpoch()).count();
-
- // The return type will cause overflow in early 2038. Warn future developers
- // a year ahead of time.
- constexpr mDNSs32 a_year_before_overflow =
- std::numeric_limits<mDNSs32>::max() -
- duration_cast<seconds>(365 * hours(24)).count();
- OSP_DCHECK_LE(seconds_since_epoch, a_year_before_overflow);
-
- return static_cast<mDNSs32>(seconds_since_epoch);
-}
-
-void mDNSPlatformWriteDebugMsg(const char* msg) {
- OSP_DVLOG << __func__ << ": " << msg;
-}
-
-void mDNSPlatformWriteLogMsg(const char* ident,
- const char* msg,
- mDNSLogLevel_t loglevel) {
- OSP_VLOG << __func__ << ": " << msg;
-}
-
-TCPSocket* mDNSPlatformTCPSocket(mDNS* const m,
- TCPSocketFlags flags,
- mDNSIPPort* port) {
- OSP_UNIMPLEMENTED();
- return nullptr;
-}
-
-TCPSocket* mDNSPlatformTCPAccept(TCPSocketFlags flags, int sd) {
- OSP_UNIMPLEMENTED();
- return nullptr;
-}
-
-int mDNSPlatformTCPGetFD(TCPSocket* sock) {
- OSP_UNIMPLEMENTED();
- return 0;
-}
-
-mStatus mDNSPlatformTCPConnect(TCPSocket* sock,
- const mDNSAddr* dst,
- mDNSOpaque16 dstport,
- domainname* hostname,
- mDNSInterfaceID InterfaceID,
- TCPConnectionCallback callback,
- void* context) {
- OSP_UNIMPLEMENTED();
- return mStatus_NoError;
-}
-
-void mDNSPlatformTCPCloseConnection(TCPSocket* sock) {
- OSP_UNIMPLEMENTED();
-}
-
-long mDNSPlatformReadTCP(TCPSocket* sock, // NOLINT
- void* buf,
- unsigned long buflen, // NOLINT
- mDNSBool* closed) {
- OSP_UNIMPLEMENTED();
- return 0;
-}
-
-long mDNSPlatformWriteTCP(TCPSocket* sock, // NOLINT
- const char* msg,
- unsigned long len) { // NOLINT
- OSP_UNIMPLEMENTED();
- return 0;
-}
-
-UDPSocket* mDNSPlatformUDPSocket(mDNS* const m,
- const mDNSIPPort requestedport) {
- OSP_UNIMPLEMENTED();
- return nullptr;
-}
-
-void mDNSPlatformUDPClose(UDPSocket* sock) {
- OSP_UNIMPLEMENTED();
-}
-
-void mDNSPlatformReceiveBPF_fd(mDNS* const m, int fd) {
- OSP_UNIMPLEMENTED();
-}
-
-void mDNSPlatformUpdateProxyList(mDNS* const m,
- const mDNSInterfaceID InterfaceID) {
- OSP_UNIMPLEMENTED();
-}
-
-void mDNSPlatformSendRawPacket(const void* const msg,
- const mDNSu8* const end,
- mDNSInterfaceID InterfaceID) {
- OSP_UNIMPLEMENTED();
-}
-
-void mDNSPlatformSetLocalAddressCacheEntry(mDNS* const m,
- const mDNSAddr* const tpa,
- const mDNSEthAddr* const tha,
- mDNSInterfaceID InterfaceID) {}
-
-void mDNSPlatformSourceAddrForDest(mDNSAddr* const src,
- const mDNSAddr* const dst) {}
-
-mStatus mDNSPlatformTLSSetupCerts(void) {
- OSP_UNIMPLEMENTED();
- return mStatus_NoError;
-}
-
-void mDNSPlatformTLSTearDownCerts(void) {
- OSP_UNIMPLEMENTED();
-}
-
-void mDNSPlatformSetDNSConfig(mDNS* const m,
- mDNSBool setservers,
- mDNSBool setsearch,
- domainname* const fqdn,
- DNameListElem** RegDomains,
- DNameListElem** BrowseDomains) {
- if (fqdn) {
- std::memset(fqdn, 0, sizeof(*fqdn));
- }
-}
-
-mStatus mDNSPlatformGetPrimaryInterface(mDNS* const m,
- mDNSAddr* v4,
- mDNSAddr* v6,
- mDNSAddr* router) {
- return mStatus_NoError;
-}
-
-void mDNSPlatformDynDNSHostNameStatusChanged(const domainname* const dname,
- const mStatus status) {}
-
-void mDNSPlatformSetAllowSleep(mDNS* const m,
- mDNSBool allowSleep,
- const char* reason) {}
-
-void mDNSPlatformSendWakeupPacket(mDNS* const m,
- mDNSInterfaceID InterfaceID,
- char* EthAddr,
- char* IPAddr,
- int iteration) {
- OSP_UNIMPLEMENTED();
-}
-
-mDNSBool mDNSPlatformValidRecordForInterface(AuthRecord* rr,
- const NetworkInterfaceInfo* intf) {
- OSP_UNIMPLEMENTED();
- return mDNStrue;
-}
-
-} // extern "C"