Index: src/OFDNSResolver.h ================================================================== --- src/OFDNSResolver.h +++ src/OFDNSResolver.h @@ -66,16 +66,15 @@ /*! The server refused the query */ OF_DNS_RESOLVER_ERROR_SERVER_REFUSED } of_dns_resolver_error_t; /*! - * @protocol OFDNSResolverDelegate OFDNSResolver.h ObjFW/OFDNSResolver.h + * @protocol OFDNSResolverQueryDelegate OFDNSResolver.h ObjFW/OFDNSResolver.h * - * @brief A delegate for OFDNSResolver. + * @brief A delegate for performed DNS queries. */ -@protocol OFDNSResolverDelegate -@optional +@protocol OFDNSResolverQueryDelegate /*! * @brief This method is called when a DNS resolver performed a query. * * @param resolver The acting resolver * @param query The query performed by the resolver @@ -85,11 +84,18 @@ */ - (void)resolver: (OFDNSResolver *)resolver didPerformQuery: (OFDNSQuery *)query response: (nullable OFDNSResponse *)response exception: (nullable id)exception; +@end +/*! + * @protocol OFDNSResolverQueryDelegate OFDNSResolver.h ObjFW/OFDNSResolver.h + * + * @brief A delegate for resolved hosts. + */ +@protocol OFDNSResolverHostDelegate /*! * @brief This method is called when a DNS resolver resolved a host to * addresses. * * @param resolver The acting resolver @@ -197,11 +203,11 @@ * * @param query The query to perform * @param delegate The delegate to use for callbacks */ - (void)asyncPerformQuery: (OFDNSQuery *)query - delegate: (id )delegate; + delegate: (id )delegate; /*! * @brief Asynchronously performs the specified query. * * @param query The query to perform @@ -208,20 +214,20 @@ * @param runLoopMode The run loop mode in which to resolve * @param delegate The delegate to use for callbacks */ - (void)asyncPerformQuery: (OFDNSQuery *)query runLoopMode: (of_run_loop_mode_t)runLoopMode - delegate: (id )delegate; + delegate: (id )delegate; /*! * @brief Asynchronously resolves the specified host to socket addresses. * * @param host The host to resolve * @param delegate The delegate to use for callbacks */ - (void)asyncResolveAddressesForHost: (OFString *)host - delegate: (id )delegate; + delegate: (id )delegate; /*! * @brief Asynchronously resolves the specified host to socket addresses. * * @param host The host to resolve @@ -228,11 +234,11 @@ * @param addressFamily The desired socket address family * @param delegate The delegate to use for callbacks */ - (void)asyncResolveAddressesForHost: (OFString *)host addressFamily: (of_socket_address_family_t)addressFamily - delegate: (id )delegate; + delegate: (id )delegate; /*! * @brief Asynchronously resolves the specified host to socket addresses. * * @param host The host to resolve @@ -241,11 +247,11 @@ * @param delegate The delegate to use for callbacks */ - (void)asyncResolveAddressesForHost: (OFString *)host addressFamily: (of_socket_address_family_t)addressFamily runLoopMode: (of_run_loop_mode_t)runLoopMode - delegate: (id )delegate; + delegate: (id )delegate; /*! * @brief Synchronously resolves the specified host to socket addresses. * * @param host The host to resolve Index: src/OFDNSResolver.m ================================================================== --- src/OFDNSResolver.m +++ src/OFDNSResolver.m @@ -75,20 +75,20 @@ OFDNSQuery *_query; OFNumber *_ID; OFDNSResolverSettings *_settings; size_t _nameServersIndex; unsigned int _attempt; - id _delegate; + id _delegate; OFData *_queryData; of_socket_address_t _usedNameServer; OFTimer *_cancelTimer; } - (instancetype)initWithQuery: (OFDNSQuery *)query ID: (OFNumber *)ID settings: (OFDNSResolverSettings *)settings - delegate: (id )delegate; + delegate: (id )delegate; @end static OFString * parseString(const unsigned char *buffer, size_t length, size_t *i) { @@ -456,11 +456,11 @@ @implementation OFDNSResolverContext - (instancetype)initWithQuery: (OFDNSQuery *)query ID: (OFNumber *)ID settings: (OFDNSResolverSettings *)settings - delegate: (id )delegate + delegate: (id )delegate { self = [super init]; @try { void *pool = objc_autoreleasePoolPush(); @@ -756,20 +756,20 @@ length: BUFFER_LENGTH runLoopMode: runLoopMode]; } - (void)asyncPerformQuery: (OFDNSQuery *)query - delegate: (id )delegate + delegate: (id )delegate { [self asyncPerformQuery: query runLoopMode: of_run_loop_mode_default delegate: delegate]; } - (void)asyncPerformQuery: (OFDNSQuery *)query runLoopMode: (of_run_loop_mode_t)runLoopMode - delegate: (id )delegate + delegate: (id )delegate { void *pool = objc_autoreleasePoolPush(); OFNumber *ID; OFDNSResolverContext *context; @@ -995,21 +995,21 @@ return false; } - (void)asyncResolveAddressesForHost: (OFString *)host - delegate: (id )delegate + delegate: (id )delegate { [self asyncResolveAddressesForHost: host addressFamily: OF_SOCKET_ADDRESS_FAMILY_ANY runLoopMode: of_run_loop_mode_default delegate: delegate]; } - (void)asyncResolveAddressesForHost: (OFString *)host addressFamily: (of_socket_address_family_t)addressFamily - delegate: (id )delegate + delegate: (id )delegate { [self asyncResolveAddressesForHost: host addressFamily: addressFamily runLoopMode: of_run_loop_mode_default delegate: delegate]; @@ -1016,11 +1016,11 @@ } - (void)asyncResolveAddressesForHost: (OFString *)host addressFamily: (of_socket_address_family_t)addressFamily runLoopMode: (of_run_loop_mode_t)runLoopMode - delegate: (id )delegate + delegate: (id )delegate { void *pool = objc_autoreleasePoolPush(); OFHostAddressResolver *resolver = [[[OFHostAddressResolver alloc] initWithHost: host addressFamily: addressFamily Index: src/OFHostAddressResolver.h ================================================================== --- src/OFHostAddressResolver.h +++ src/OFHostAddressResolver.h @@ -27,28 +27,28 @@ @class OFDNSResourceRecord; @class OFMutableArray OF_GENERIC(ObjectType); @class OFMutableData; @class OFString; -@interface OFHostAddressResolver: OFObject +@interface OFHostAddressResolver: OFObject { OFString *_host; of_socket_address_family_t _addressFamily; OFDNSResolver *_resolver; OFDNSResolverSettings *_settings; of_run_loop_mode_t _Nullable _runLoopMode; - id _Nullable _delegate; + id _Nullable _delegate; unsigned int _numExpectedResponses; OFMutableData *_addresses; } - (instancetype)initWithHost: (OFString *)host addressFamily: (of_socket_address_family_t)addressFamily resolver: (OFDNSResolver *)resolver settings: (OFDNSResolverSettings *)settings runLoopMode: (nullable of_run_loop_mode_t)runLoopMode - delegate: (nullable id )delegate; + delegate: (nullable id )delegate; - (void)asyncResolve; - (OFData *)resolve; @end OF_ASSUME_NONNULL_END Index: src/OFHostAddressResolver.m ================================================================== --- src/OFHostAddressResolver.m +++ src/OFHostAddressResolver.m @@ -29,11 +29,11 @@ #import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" #import "OFResolveHostFailedException.h" -@interface OFHostAddressResolverDelegate: OFObject +@interface OFHostAddressResolverDelegate: OFObject { @public bool _done; OFData *_addresses; id _exception; @@ -69,11 +69,11 @@ return true; } static void callDelegateInMode(of_run_loop_mode_t runLoopMode, - id delegate, OFDNSResolver *resolver, + id delegate, OFDNSResolver *resolver, OFString *host, OFData *addresses, id exception) { SEL selector = @selector(resolver:didResolveHost:addresses:exception:); if ([delegate respondsToSelector: selector]) { @@ -95,11 +95,11 @@ - (instancetype)initWithHost: (OFString *)host addressFamily: (of_socket_address_family_t)addressFamily resolver: (OFDNSResolver *)resolver settings: (OFDNSResolverSettings *)settings runLoopMode: (of_run_loop_mode_t)runLoopMode - delegate: (id )delegate + delegate: (id )delegate { self = [super init]; @try { _host = [host copy]; Index: src/OFTCPSocket.m ================================================================== --- src/OFTCPSocket.m +++ src/OFTCPSocket.m @@ -65,11 +65,11 @@ static OFString *defaultSOCKS5Host = nil; static uint16_t defaultSOCKS5Port = 1080; @interface OFTCPSocketAsyncConnectDelegate: OFObject + OFTCPSocketDelegate_Private, OFDNSResolverHostDelegate> { OFTCPSocket *_socket; OFString *_host; uint16_t _port; OFString *_SOCKS5Host; Index: utils/ofdns/OFDNS.m ================================================================== --- utils/ofdns/OFDNS.m +++ utils/ofdns/OFDNS.m @@ -21,20 +21,20 @@ #import "OFArray.h" #import "OFDNSResolver.h" #import "OFSandbox.h" #import "OFStdIOStream.h" -@interface OFDNS: OFObject +@interface OFDNS: OFObject @end OF_APPLICATION_DELEGATE(OFDNS) @implementation OFDNS -- (void)resolver: (OFDNSResolver *)resolver - didPerformQuery: (OFDNSQuery *)query - response: (OFDNSResponse *)response - exception: (id)exception +- (void)resolver: (OFDNSResolver *)resolver + didPerformQuery: (OFDNSQuery *)query + response: (OFDNSResponse *)response + exception: (id)exception { if (exception != nil) { [of_stderr writeFormat: @"Failed to resolve: %@\n", exception]; [OFApplication terminateWithStatus: 1]; }