From c11c48fc783305fbb3a1b446b35dc3d9602d4bbe Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Tue, 5 Feb 2008 21:39:40 +0000 Subject: r17913@catbus: nickm | 2008-02-05 16:11:33 -0500 Correctly register failures in connection_add() in dnsserv_launch_request() svn:r13387 --- src/or/dnsserv.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/or/dnsserv.c') 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 req. + * 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 conn that's waiting for an answer, -- cgit v1.2.3-54-g00ecf