summaryrefslogtreecommitdiff
path: root/src/or/dnsserv.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2008-02-05 21:39:40 +0000
committerNick Mathewson <nickm@torproject.org>2008-02-05 21:39:40 +0000
commitc11c48fc783305fbb3a1b446b35dc3d9602d4bbe (patch)
tree82a480985d9d4b29f7033c777031d77b44f108cb /src/or/dnsserv.c
parentbd5bcbdc091dc40fe1337aeb45852c60343a92bf (diff)
downloadtor-c11c48fc783305fbb3a1b446b35dc3d9602d4bbe.tar.gz
tor-c11c48fc783305fbb3a1b446b35dc3d9602d4bbe.zip
r17913@catbus: nickm | 2008-02-05 16:11:33 -0500
Correctly register failures in connection_add() in dnsserv_launch_request() svn:r13387
Diffstat (limited to 'src/or/dnsserv.c')
-rw-r--r--src/or/dnsserv.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/or/dnsserv.c b/src/or/dnsserv.c
index d1e6219a94..d2b5bacc79 100644
--- a/src/or/dnsserv.c
+++ b/src/or/dnsserv.c
@@ -47,7 +47,7 @@ evdns_server_callback(struct evdns_server_request *req, void *_data)
(void) addrlen;
sa = (struct sockaddr*) &addr;
if (sa->sa_family != AF_INET) {
- /* XXXX020 Handle IPV6 */
+ /* XXXX_IP6 Handle IPV6 */
log_warn(LD_APP, "Requesting address wasn't ipv4.");
evdns_server_request_respond(req, DNS_ERR_SERVERFAILED);
return;
@@ -155,8 +155,10 @@ evdns_server_callback(struct evdns_server_request *req, void *_data)
/* Helper function: called whenever the client sends a resolve request to our
* controller. We need to eventually answer the request <b>req</b>.
+ * Returns 0 if the controller will be getting (or has gotten) an event in
+ * response; -1 if we couldn't launch the request.
*/
-void
+int
dnsserv_launch_request(const char *name, int reverse)
{
edge_connection_t *conn;
@@ -178,9 +180,8 @@ dnsserv_launch_request(const char *name, int reverse)
if (connection_add(TO_CONN(conn))<0) {
log_warn(LD_APP, "Couldn't register dummy connection for RESOLVE request");
- /* XXXX020 Answer the controller. */
connection_free(TO_CONN(conn));
- return;
+ return -1;
}
/* Now, throw the connection over to get rewritten (which will answer it
@@ -195,6 +196,7 @@ dnsserv_launch_request(const char *name, int reverse)
log_info(LD_APP, "Passed request for %s to rewrite_and_attach.",
escaped_safe_str(q_name));
tor_free(q_name);
+ return 0;
}
/** If there is a pending request on <b>conn</b> that's waiting for an answer,