зеркало из https://github.com/mozilla/gecko-dev.git
165 строки
5.1 KiB
C++
165 строки
5.1 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef mozilla_netwerk_dns_mdns_libmdns_MDNSResponderReply_h
|
|
#define mozilla_netwerk_dns_mdns_libmdns_MDNSResponderReply_h
|
|
|
|
#include "dns_sd.h"
|
|
#include "MDNSResponderOperator.h"
|
|
#include "mozilla/UniquePtr.h"
|
|
#include "nsIThread.h"
|
|
#include "mozilla/net/DNS.h"
|
|
#include "mozilla/RefPtr.h"
|
|
#include "nsThreadUtils.h"
|
|
|
|
namespace mozilla {
|
|
namespace net {
|
|
|
|
class BrowseReplyRunnable final : public Runnable
|
|
{
|
|
public:
|
|
BrowseReplyRunnable(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
uint32_t aInterfaceIndex,
|
|
DNSServiceErrorType aErrorCode,
|
|
const nsACString& aServiceName,
|
|
const nsACString& aRegType,
|
|
const nsACString& aReplyDomain,
|
|
BrowseOperator* aContext);
|
|
|
|
NS_IMETHOD Run() override;
|
|
|
|
static void Reply(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
uint32_t aInterfaceIndex,
|
|
DNSServiceErrorType aErrorCode,
|
|
const char* aServiceName,
|
|
const char* aRegType,
|
|
const char* aReplyDomain,
|
|
void* aContext);
|
|
|
|
private:
|
|
DNSServiceRef mSdRef;
|
|
DNSServiceFlags mFlags;
|
|
uint32_t mInterfaceIndex;
|
|
DNSServiceErrorType mErrorCode;
|
|
nsCString mServiceName;
|
|
nsCString mRegType;
|
|
nsCString mReplyDomain;
|
|
RefPtr<BrowseOperator> mContext;
|
|
};
|
|
|
|
class RegisterReplyRunnable final : public Runnable
|
|
{
|
|
public:
|
|
RegisterReplyRunnable(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
DNSServiceErrorType aErrorCode,
|
|
const nsACString& aName,
|
|
const nsACString& aRegType,
|
|
const nsACString& aDomain,
|
|
RegisterOperator* aContext);
|
|
|
|
NS_IMETHOD Run() override;
|
|
|
|
static void Reply(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
DNSServiceErrorType aErrorCode,
|
|
const char* aName,
|
|
const char* aRegType,
|
|
const char* aDomain,
|
|
void* aContext);
|
|
|
|
private:
|
|
DNSServiceRef mSdRef;
|
|
DNSServiceFlags mFlags;
|
|
DNSServiceErrorType mErrorCode;
|
|
nsCString mName;
|
|
nsCString mRegType;
|
|
nsCString mDomain;
|
|
RefPtr<RegisterOperator> mContext;
|
|
};
|
|
|
|
class ResolveReplyRunnable final : public Runnable
|
|
{
|
|
public:
|
|
ResolveReplyRunnable(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
uint32_t aInterfaceIndex,
|
|
DNSServiceErrorType aErrorCode,
|
|
const nsACString& aFullName,
|
|
const nsACString& aHostTarget,
|
|
uint16_t aPort,
|
|
uint16_t aTxtLen,
|
|
const unsigned char* aTxtRecord,
|
|
ResolveOperator* aContext);
|
|
~ResolveReplyRunnable();
|
|
|
|
NS_IMETHOD Run() override;
|
|
|
|
static void Reply(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
uint32_t aInterfaceIndex,
|
|
DNSServiceErrorType aErrorCode,
|
|
const char* aFullName,
|
|
const char* aHostTarget,
|
|
uint16_t aPort,
|
|
uint16_t aTxtLen,
|
|
const unsigned char* aTxtRecord,
|
|
void* aContext);
|
|
|
|
private:
|
|
DNSServiceRef mSdRef;
|
|
DNSServiceFlags mFlags;
|
|
uint32_t mInterfaceIndex;
|
|
DNSServiceErrorType mErrorCode;
|
|
nsCString mFullname;
|
|
nsCString mHosttarget;
|
|
uint16_t mPort;
|
|
uint16_t mTxtLen;
|
|
UniquePtr<unsigned char> mTxtRecord;
|
|
RefPtr<ResolveOperator> mContext;
|
|
};
|
|
|
|
class GetAddrInfoReplyRunnable final : public Runnable
|
|
{
|
|
public:
|
|
GetAddrInfoReplyRunnable(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
uint32_t aInterfaceIndex,
|
|
DNSServiceErrorType aErrorCode,
|
|
const nsACString& aHostName,
|
|
const mozilla::net::NetAddr& aAddress,
|
|
uint32_t aTTL,
|
|
GetAddrInfoOperator* aContext);
|
|
~GetAddrInfoReplyRunnable();
|
|
|
|
NS_IMETHOD Run() override;
|
|
|
|
static void Reply(DNSServiceRef aSdRef,
|
|
DNSServiceFlags aFlags,
|
|
uint32_t aInterfaceIndex,
|
|
DNSServiceErrorType aErrorCode,
|
|
const char* aHostName,
|
|
const struct sockaddr* aAddress,
|
|
uint32_t aTTL,
|
|
void* aContext);
|
|
|
|
private:
|
|
DNSServiceRef mSdRef;
|
|
DNSServiceFlags mFlags;
|
|
uint32_t mInterfaceIndex;
|
|
DNSServiceErrorType mErrorCode;
|
|
nsCString mHostName;
|
|
mozilla::net::NetAddr mAddress;
|
|
uint32_t mTTL;
|
|
RefPtr<GetAddrInfoOperator> mContext;
|
|
};
|
|
|
|
} // namespace net
|
|
} // namespace mozilla
|
|
|
|
#endif // mozilla_netwerk_dns_mdns_libmdns_MDNSResponderReply_h
|