96 lines
1.8 KiB
C#
96 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Unosquare.Swan.Networking {
|
|
/// <summary>
|
|
/// DnsClient public interfaces.
|
|
/// </summary>
|
|
internal partial class DnsClient {
|
|
public interface IDnsMessage {
|
|
IList<DnsQuestion> Questions {
|
|
get;
|
|
}
|
|
|
|
Int32 Size {
|
|
get;
|
|
}
|
|
Byte[] ToArray();
|
|
}
|
|
|
|
public interface IDnsMessageEntry {
|
|
DnsDomain Name {
|
|
get;
|
|
}
|
|
DnsRecordType Type {
|
|
get;
|
|
}
|
|
DnsRecordClass Class {
|
|
get;
|
|
}
|
|
|
|
Int32 Size {
|
|
get;
|
|
}
|
|
Byte[] ToArray();
|
|
}
|
|
|
|
public interface IDnsResourceRecord : IDnsMessageEntry {
|
|
TimeSpan TimeToLive {
|
|
get;
|
|
}
|
|
Int32 DataLength {
|
|
get;
|
|
}
|
|
Byte[] Data {
|
|
get;
|
|
}
|
|
}
|
|
|
|
public interface IDnsRequest : IDnsMessage {
|
|
Int32 Id {
|
|
get; set;
|
|
}
|
|
DnsOperationCode OperationCode {
|
|
get; set;
|
|
}
|
|
Boolean RecursionDesired {
|
|
get; set;
|
|
}
|
|
}
|
|
|
|
public interface IDnsResponse : IDnsMessage {
|
|
Int32 Id {
|
|
get; set;
|
|
}
|
|
IList<IDnsResourceRecord> AnswerRecords {
|
|
get;
|
|
}
|
|
IList<IDnsResourceRecord> AuthorityRecords {
|
|
get;
|
|
}
|
|
IList<IDnsResourceRecord> AdditionalRecords {
|
|
get;
|
|
}
|
|
Boolean IsRecursionAvailable {
|
|
get; set;
|
|
}
|
|
Boolean IsAuthorativeServer {
|
|
get; set;
|
|
}
|
|
Boolean IsTruncated {
|
|
get; set;
|
|
}
|
|
DnsOperationCode OperationCode {
|
|
get; set;
|
|
}
|
|
DnsResponseCode ResponseCode {
|
|
get; set;
|
|
}
|
|
}
|
|
|
|
public interface IDnsRequestResolver {
|
|
DnsClientResponse Request(DnsClientRequest request);
|
|
}
|
|
}
|
|
}
|