47 lines
1.7 KiB
Objective-C
47 lines
1.7 KiB
Objective-C
//
|
|
// DnsRecord.h
|
|
// Doh
|
|
//
|
|
// Created by yangsen on 2021/7/16.
|
|
//
|
|
|
|
#import "QNRecord.h"
|
|
#import "QNDnsRequest.h"
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
@interface QNDnsResponse : QNDnsMessage
|
|
|
|
@property(nonatomic, assign, readonly)NSInteger timestamp;
|
|
@property(nonatomic, assign, readonly)QNRecordSource source;
|
|
@property(nonatomic, copy, readonly)NSString *server;
|
|
@property(nonatomic, strong, readonly)QNDnsRequest *request;
|
|
@property(nonatomic, strong, readonly)NSData *recordData;
|
|
|
|
|
|
/**
|
|
* 响应该消息的域名服务器是该域中的权威域名服务器。因为Answer Section中可能会有很多域名
|
|
*/
|
|
@property(nonatomic, assign, readonly)int aa;
|
|
|
|
/**
|
|
* 响应消息的类型:
|
|
* 0 成功的响应
|
|
* 1 格式错误--域名服务器无法解析请求,因为请求消息格式错误
|
|
* 2 服务器错误--域名服务器因为内部错误无法解析该请求
|
|
* 3 名字错误-- 只在权威域名服务器的响应消息中有效,标示请求中请求的域不存在
|
|
* 4 Not Implemented--域名服务器不支持请求的类型
|
|
* 5 Refused -- 域名服务器因为策略的原因拒绝执行请求的操作。例如域名服务器不会为特定的请求者返回查询结果,或者域名服务器不会为特定的请求返回特定的数据
|
|
*/
|
|
@property(nonatomic, assign, readonly)int rCode;
|
|
|
|
@property(nonatomic, copy, readonly)NSArray <QNRecord *> *answerArray;
|
|
@property(nonatomic, copy, readonly)NSArray <QNRecord *> *authorityArray;
|
|
@property(nonatomic, copy, readonly)NSArray <QNRecord *> *additionalArray;
|
|
|
|
+ (instancetype)dnsResponse:(NSString *)server source:(QNRecordSource)source request:(QNDnsRequest *)request dnsRecordData:(NSData *)recordData error:(NSError **)error;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|