mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
Make tor_addr_lookup_host_impl mockable.
This commit is contained in:
parent
ac8f6d51f4
commit
9c24ceeb3f
@ -8,6 +8,7 @@
|
|||||||
* \brief Use the libc DNS resolver to convert hostnames into addresses.
|
* \brief Use the libc DNS resolver to convert hostnames into addresses.
|
||||||
**/
|
**/
|
||||||
|
|
||||||
|
#define RESOLVE_PRIVATE
|
||||||
#include "lib/net/resolve.h"
|
#include "lib/net/resolve.h"
|
||||||
|
|
||||||
#include "lib/net/address.h"
|
#include "lib/net/address.h"
|
||||||
@ -70,10 +71,10 @@ tor_lookup_hostname,(const char *name, uint32_t *addr))
|
|||||||
*
|
*
|
||||||
* See tor_addr_lookup() for details.
|
* See tor_addr_lookup() for details.
|
||||||
*/
|
*/
|
||||||
static int
|
MOCK_IMPL(STATIC int,
|
||||||
tor_addr_lookup_host_impl(const char *name,
|
tor_addr_lookup_host_impl,(const char *name,
|
||||||
uint16_t family,
|
uint16_t family,
|
||||||
tor_addr_t *addr)
|
tor_addr_t *addr))
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
struct addrinfo *res=NULL, *res_p;
|
struct addrinfo *res=NULL, *res_p;
|
||||||
@ -125,10 +126,10 @@ tor_addr_lookup_host_impl(const char *name,
|
|||||||
*
|
*
|
||||||
* See tor_addr_lookup() for details.
|
* See tor_addr_lookup() for details.
|
||||||
*/
|
*/
|
||||||
static int
|
MOCK_IMPL(STATIC int,
|
||||||
tor_addr_lookup_host_impl(const char *name,
|
tor_addr_lookup_host_impl,(const char *name,
|
||||||
uint16_t family,
|
uint16_t family,
|
||||||
tor_addr_t *addr)
|
tor_addr_t *addr))
|
||||||
{
|
{
|
||||||
(void) family;
|
(void) family;
|
||||||
struct hostent *ent;
|
struct hostent *ent;
|
||||||
@ -172,7 +173,6 @@ tor_addr_lookup_host_impl(const char *name,
|
|||||||
return (err == TRY_AGAIN) ? 1 : -1;
|
return (err == TRY_AGAIN) ? 1 : -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* defined(HAVE_GETADDRINFO) */
|
#endif /* defined(HAVE_GETADDRINFO) */
|
||||||
|
|
||||||
/** Similar behavior to Unix gethostbyname: resolve <b>name</b>, and set
|
/** Similar behavior to Unix gethostbyname: resolve <b>name</b>, and set
|
||||||
|
@ -24,12 +24,18 @@
|
|||||||
|
|
||||||
struct tor_addr_t;
|
struct tor_addr_t;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Primary lookup functions.
|
||||||
|
*/
|
||||||
MOCK_DECL(int, tor_lookup_hostname,(const char *name, uint32_t *addr));
|
MOCK_DECL(int, tor_lookup_hostname,(const char *name, uint32_t *addr));
|
||||||
MOCK_DECL(int, tor_addr_lookup,(const char *name, uint16_t family,
|
MOCK_DECL(int, tor_addr_lookup,(const char *name, uint16_t family,
|
||||||
struct tor_addr_t *addr_out));
|
struct tor_addr_t *addr_out));
|
||||||
int tor_addr_port_lookup(const char *s, struct tor_addr_t *addr_out,
|
int tor_addr_port_lookup(const char *s, struct tor_addr_t *addr_out,
|
||||||
uint16_t *port_out);
|
uint16_t *port_out);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Sandbox helpers
|
||||||
|
*/
|
||||||
struct addrinfo;
|
struct addrinfo;
|
||||||
#ifdef USE_SANDBOX_GETADDRINFO
|
#ifdef USE_SANDBOX_GETADDRINFO
|
||||||
/** Pre-calls getaddrinfo in order to pre-record result. */
|
/** Pre-calls getaddrinfo in order to pre-record result. */
|
||||||
@ -55,4 +61,13 @@ void tor_free_getaddrinfo_cache(void);
|
|||||||
void sandbox_disable_getaddrinfo_cache(void);
|
void sandbox_disable_getaddrinfo_cache(void);
|
||||||
void tor_make_getaddrinfo_cache_active(void);
|
void tor_make_getaddrinfo_cache_active(void);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Internal resolver wrapper; exposed for mocking.
|
||||||
|
*/
|
||||||
|
#ifdef RESOLVE_PRIVATE
|
||||||
|
MOCK_DECL(STATIC int, tor_addr_lookup_host_impl, (const char *name,
|
||||||
|
uint16_t family,
|
||||||
|
struct tor_addr_t *addr));
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* !defined(TOR_RESOLVE_H) */
|
#endif /* !defined(TOR_RESOLVE_H) */
|
||||||
|
Loading…
Reference in New Issue
Block a user