mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
When tor_lookup_hostname says 0.0.0.0, treat it as an error.
svn:r2003
This commit is contained in:
parent
198e5f4c16
commit
0f3fcfd1db
@ -634,6 +634,7 @@ static int dnsworker_main(void *data) {
|
|||||||
uint32_t ip;
|
uint32_t ip;
|
||||||
int *fdarray = data;
|
int *fdarray = data;
|
||||||
int fd;
|
int fd;
|
||||||
|
int result;
|
||||||
|
|
||||||
tor_close_socket(fdarray[0]); /* this is the side of the socketpair the parent uses */
|
tor_close_socket(fdarray[0]); /* this is the side of the socketpair the parent uses */
|
||||||
fd = fdarray[1]; /* this side is ours */
|
fd = fdarray[1]; /* this side is ours */
|
||||||
@ -655,7 +656,11 @@ static int dnsworker_main(void *data) {
|
|||||||
}
|
}
|
||||||
address[address_len] = 0; /* null terminate it */
|
address[address_len] = 0; /* null terminate it */
|
||||||
|
|
||||||
switch (tor_lookup_hostname(address, &ip)) {
|
result = tor_lookup_hostname(address, &ip);
|
||||||
|
/* Make 0.0.0.0 an error, so that we can use "0" to mean "no addr") */
|
||||||
|
if (!ip)
|
||||||
|
result = -1;
|
||||||
|
switch (result) {
|
||||||
case 1:
|
case 1:
|
||||||
log_fn(LOG_INFO,"Could not resolve dest addr %s (transient).",address);
|
log_fn(LOG_INFO,"Could not resolve dest addr %s (transient).",address);
|
||||||
answer[0] = DNS_RESOLVE_FAILED_TRANSIENT;
|
answer[0] = DNS_RESOLVE_FAILED_TRANSIENT;
|
||||||
|
@ -237,7 +237,7 @@ int router_nickname_matches(routerinfo_t *router, const char *nickname)
|
|||||||
*/
|
*/
|
||||||
routerinfo_t *router_get_by_nickname(const char *nickname)
|
routerinfo_t *router_get_by_nickname(const char *nickname)
|
||||||
{
|
{
|
||||||
int i, maybedigest, mustbedigest;
|
int i, maybedigest;
|
||||||
routerinfo_t *router;
|
routerinfo_t *router;
|
||||||
char digest[DIGEST_LEN];
|
char digest[DIGEST_LEN];
|
||||||
|
|
||||||
@ -562,7 +562,8 @@ int router_load_routerlist_from_directory(const char *s,
|
|||||||
static int
|
static int
|
||||||
router_resolve(routerinfo_t *router)
|
router_resolve(routerinfo_t *router)
|
||||||
{
|
{
|
||||||
if (tor_lookup_hostname(router->address, &router->addr) != 0) {
|
if (tor_lookup_hostname(router->address, &router->addr) != 0
|
||||||
|
|| !router->addr) {
|
||||||
log_fn(LOG_WARN,"Could not get address for router %s (%s).",
|
log_fn(LOG_WARN,"Could not get address for router %s (%s).",
|
||||||
router->address, router->nickname);
|
router->address, router->nickname);
|
||||||
return -1;
|
return -1;
|
||||||
|
Loading…
Reference in New Issue
Block a user