summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorrl1987 <rl1987@sdf.lonestar.org>2014-04-28 23:20:58 +0300
committerNick Mathewson <nickm@torproject.org>2014-12-29 09:59:47 -0500
commit28217b969eec213e7eb01bc8382fb1236eb4bbdd (patch)
tree6ee75f692cbf0c3c2e74adf6815387a39408d10b /src/common
parenta56511e594b14e8c97605c8e12084a91028d3747 (diff)
downloadtor-28217b969eec213e7eb01bc8382fb1236eb4bbdd.tar.gz
tor-28217b969eec213e7eb01bc8382fb1236eb4bbdd.zip
Adding comprehensive test cases for resolve_my_address.
Also, improve comments on resolve_my_address to explain what it actually does.
Diffstat (limited to 'src/common')
-rw-r--r--src/common/address.c8
-rw-r--r--src/common/address.h5
-rw-r--r--src/common/compat.c20
-rw-r--r--src/common/compat.h3
4 files changed, 25 insertions, 11 deletions
diff --git a/src/common/address.c b/src/common/address.c
index e5930dedca..c9b5cf4d9b 100644
--- a/src/common/address.c
+++ b/src/common/address.c
@@ -1354,8 +1354,8 @@ tor_addr_is_multicast(const tor_addr_t *a)
* connects to the Internet. This address should only be used in checking
* whether our address has changed. Return 0 on success, -1 on failure.
*/
-int
-get_interface_address6(int severity, sa_family_t family, tor_addr_t *addr)
+MOCK_IMPL(int,
+get_interface_address6,(int severity, sa_family_t family, tor_addr_t *addr))
{
/* XXX really, this function should yield a smartlist of addresses. */
smartlist_t *addrs;
@@ -1684,8 +1684,8 @@ tor_dup_ip(uint32_t addr)
* checking whether our address has changed. Return 0 on success, -1 on
* failure.
*/
-int
-get_interface_address(int severity, uint32_t *addr)
+MOCK_IMPL(int,
+get_interface_address,(int severity, uint32_t *addr))
{
tor_addr_t local_addr;
int r;
diff --git a/src/common/address.h b/src/common/address.h
index 8dc63b71c1..ecb7adcf52 100644
--- a/src/common/address.h
+++ b/src/common/address.h
@@ -148,7 +148,8 @@ char *tor_dup_addr(const tor_addr_t *addr) ATTR_MALLOC;
const char *fmt_addr_impl(const tor_addr_t *addr, int decorate);
const char *fmt_addrport(const tor_addr_t *addr, uint16_t port);
const char * fmt_addr32(uint32_t addr);
-int get_interface_address6(int severity, sa_family_t family, tor_addr_t *addr);
+MOCK_DECL(int,get_interface_address6,(int severity, sa_family_t family,
+tor_addr_t *addr));
/** Flag to specify how to do a comparison between addresses. In an "exact"
* comparison, addresses are equivalent only if they are in the same family
@@ -225,7 +226,7 @@ int addr_mask_get_bits(uint32_t mask);
#define INET_NTOA_BUF_LEN 16
int tor_inet_ntoa(const struct in_addr *in, char *buf, size_t buf_len);
char *tor_dup_ip(uint32_t addr) ATTR_MALLOC;
-int get_interface_address(int severity, uint32_t *addr);
+MOCK_DECL(int,get_interface_address,(int severity, uint32_t *addr));
tor_addr_port_t *tor_addr_port_new(const tor_addr_t *addr, uint16_t port);
diff --git a/src/common/compat.c b/src/common/compat.c
index 470e860f52..9b040f1877 100644
--- a/src/common/compat.c
+++ b/src/common/compat.c
@@ -2061,9 +2061,20 @@ get_environment(void)
#endif
}
+/** Get name of current host and write it to <b>name</b> array, whose
+ * length is specified by <b>namelen</b> argument. Return 0 upon
+ * successfull completion; otherwise return return -1. (Currently,
+ * this function is merely a mockable wrapper for POSIX gethostname().)
+ */
+MOCK_IMPL(int,
+tor_gethostname,(char *name, size_t namelen))
+{
+ return gethostname(name,namelen);
+}
+
/** Set *addr to the IP address (in dotted-quad notation) stored in *str.
- * Return 1 on success, 0 if *str is badly formatted. (Like inet_aton(str,addr),
- * but works on Windows and Solaris.)
+ * Return 1 on success, 0 if *str is badly formatted.
+ * (Like inet_aton(str,addr), but works on Windows and Solaris.)
*/
int
tor_inet_aton(const char *str, struct in_addr* addr)
@@ -2281,8 +2292,9 @@ tor_inet_pton(int af, const char *src, void *dst)
* (This function exists because standard windows gethostbyname
* doesn't treat raw IP addresses properly.)
*/
-int
-tor_lookup_hostname(const char *name, uint32_t *addr)
+
+MOCK_IMPL(int,
+tor_lookup_hostname,(const char *name, uint32_t *addr))
{
tor_addr_t myaddr;
int ret;
diff --git a/src/common/compat.h b/src/common/compat.h
index 9a381fb97f..4e614c0580 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -537,10 +537,11 @@ struct sockaddr_in6 {
};
#endif
+MOCK_DECL(int,tor_gethostname,(char *name, size_t namelen));
int tor_inet_aton(const char *cp, struct in_addr *addr) ATTR_NONNULL((1,2));
const char *tor_inet_ntop(int af, const void *src, char *dst, size_t len);
int tor_inet_pton(int af, const char *src, void *dst);
-int tor_lookup_hostname(const char *name, uint32_t *addr) ATTR_NONNULL((1,2));
+MOCK_DECL(int,tor_lookup_hostname,(const char *name, uint32_t *addr));
int set_socket_nonblocking(tor_socket_t socket);
int tor_socketpair(int family, int type, int protocol, tor_socket_t fd[2]);
int network_init(void);