Commit 07e6eecd authored by Nick Mathewson's avatar Nick Mathewson 🐻
Browse files

r12122@Kushana: nickm | 2007-02-02 10:41:39 -0500

 Fail when we are unable to parse the nameserver configuration.


svn:r9475
parent 85076992
...@@ -63,6 +63,7 @@ Changes in version 0.1.2.7-alpha - 2007-??-?? ...@@ -63,6 +63,7 @@ Changes in version 0.1.2.7-alpha - 2007-??-??
- Handle TTL values correctly on reverse DNS lookups. - Handle TTL values correctly on reverse DNS lookups.
- Stop using the reserved ac_cv namespace in our configure script. - Stop using the reserved ac_cv namespace in our configure script.
- Call stat() slightly less often; use fstat() when possible. - Call stat() slightly less often; use fstat() when possible.
- Treat failure to parse resolv.conf as an error.
o Major features: o Major features:
- Weight directory requests by advertised bandwidth. Now we can - Weight directory requests by advertised bandwidth. Now we can
......
...@@ -990,11 +990,13 @@ options_act(or_options_t *old_options) ...@@ -990,11 +990,13 @@ options_act(or_options_t *old_options)
inform_testing_reachability(); inform_testing_reachability();
} }
cpuworkers_rotate(); cpuworkers_rotate();
dns_reset(); if (dns_reset())
return -1;
} }
#ifdef USE_EVENTDNS #ifdef USE_EVENTDNS
else { else {
dns_reset(); if (dns_reset())
return -1;
} }
#endif #endif
} }
......
...@@ -222,8 +222,9 @@ dns_init(void) ...@@ -222,8 +222,9 @@ dns_init(void)
return 0; return 0;
} }
/** Called when DNS-related options change (or may have changed) */ /** Called when DNS-related options change (or may have changed). Returns -1
void * on failure, 0 on success. */
int
dns_reset(void) dns_reset(void)
{ {
#ifdef USE_EVENTDNS #ifdef USE_EVENTDNS
...@@ -236,8 +237,7 @@ dns_reset(void) ...@@ -236,8 +237,7 @@ dns_reset(void)
resolv_conf_mtime = 0; resolv_conf_mtime = 0;
} else { } else {
if (configure_nameservers(0) < 0) if (configure_nameservers(0) < 0)
/* XXXX012 */ return -1;
return;
} }
#else #else
dnsworkers_rotate(); dnsworkers_rotate();
...@@ -322,7 +322,8 @@ dns_free_all(void) ...@@ -322,7 +322,8 @@ dns_free_all(void)
SMARTLIST_FOREACH(cached_resolve_pqueue, cached_resolve_t *, res, SMARTLIST_FOREACH(cached_resolve_pqueue, cached_resolve_t *, res,
{ {
/* XXXX012 The hash lookups here could be quite slow; remove them /* XXXX012 The hash lookups here could be quite slow; remove them
* once we're happy. */ * once we're happy. (Leave them in for at least 0.1.2.7-alpha, so they
* get some testing.) -NM */
if (res->state == CACHE_STATE_DONE) { if (res->state == CACHE_STATE_DONE) {
cached_resolve_t *found = HT_FIND(cache_map, &cache_root, res); cached_resolve_t *found = HT_FIND(cache_map, &cache_root, res);
tor_assert(!found || found != res); tor_assert(!found || found != res);
......
...@@ -2415,7 +2415,7 @@ uint32_t dns_clip_ttl(uint32_t ttl); ...@@ -2415,7 +2415,7 @@ uint32_t dns_clip_ttl(uint32_t ttl);
int connection_dns_finished_flushing(connection_t *conn); int connection_dns_finished_flushing(connection_t *conn);
int connection_dns_reached_eof(connection_t *conn); int connection_dns_reached_eof(connection_t *conn);
int connection_dns_process_inbuf(connection_t *conn); int connection_dns_process_inbuf(connection_t *conn);
void dns_reset(void); int dns_reset(void);
void connection_dns_remove(edge_connection_t *conn); void connection_dns_remove(edge_connection_t *conn);
void assert_connection_edge_not_dns_pending(edge_connection_t *conn); void assert_connection_edge_not_dns_pending(edge_connection_t *conn);
void assert_all_pending_dns_resolves_ok(void); void assert_all_pending_dns_resolves_ok(void);
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment