1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- //
- // QNDnsPrefetch.h
- // QnDNS
- //
- // Created by yangsen on 2020/3/26.
- // Copyright © 2020 com.qiniu. All rights reserved.
- //
- #import "QNDns.h"
- #import "QNUpToken.h"
- #import "QNConfiguration.h"
- #import "QNTransactionManager.h"
- NS_ASSUME_NONNULL_BEGIN
- #define kQNDnsPrefetch [QNDnsPrefetch shared]
- @interface QNDnsPrefetch : NSObject
- /// 最近一次预取错误信息
- @property(nonatomic, copy, readonly)NSString *lastPrefetchedErrorMessage;
- + (instancetype)shared;
- /// 根据host从缓存中读取DNS信息
- /// @param host 域名
- - (NSArray <id <QNIDnsNetworkAddress> > *)getInetAddressByHost:(NSString *)host;
- /// 通过安全的方式预取 dns
- - (NSString *)prefetchHostBySafeDns:(NSString *)host error:(NSError **)error;
- - (void)clearDnsCache:(NSError **)error;
- @end
- @interface QNTransactionManager(Dns)
- /// 添加加载本地dns事务
- - (void)addDnsLocalLoadTransaction;
- /// 添加检测并预取dns事务 如果未开启DNS 或 事务队列中存在token对应的事务未处理,则返回NO
- /// @param currentZone 当前区域
- /// @param token token信息
- - (BOOL)addDnsCheckAndPrefetchTransaction:(QNZone *)currentZone token:(QNUpToken *)token;
- /// 设置定时事务:检测已缓存DNS有效情况事务 无效会重新预取
- - (void)setDnsCheckWhetherCachedValidTransactionAction;
- @end
- #define kQNDnsSourceDoh @"doh"
- #define kQNDnsSourceUdp @"dns"
- #define kQNDnsSourceDnspod @"dnspod"
- #define kQNDnsSourceSystem @"system"
- #define kQNDnsSourceCustom @"customized"
- #define kQNDnsSourceNone @"none"
- BOOL kQNIsDnsSourceDoh(NSString * _Nullable source);
- BOOL kQNIsDnsSourceUdp(NSString * _Nullable source);
- BOOL kQNIsDnsSourceDnsPod(NSString * _Nullable source);
- BOOL kQNIsDnsSourceSystem(NSString * _Nullable source);
- BOOL kQNIsDnsSourceCustom(NSString * _Nullable source);
- NS_ASSUME_NONNULL_END
|