@@ -177,12 +177,13 @@ HttpRequest::HttpRequest(
177177 test_only_generate_response_(std::move(test_only_generate_response)),
178178 use_event_engine_dns_resolver_(IsEventEngineDnsNonClientChannelEnabled()),
179179 resolver_(!use_event_engine_dns_resolver_ ? GetDNSResolver() : nullptr),
180- ee_resolver_(use_event_engine_dns_resolver_
181- ? ChannelArgs::FromC(channel_args_)
182- .GetObjectRef<EventEngine>()
183- ->GetDNSResolver(
184- EventEngine::DNSResolver::ResolverOptions ())
185- : absl::UnknownError(" " )) {
180+ ee_resolver_(
181+ use_event_engine_dns_resolver_
182+ ? ChannelArgs::FromC(channel_args_)
183+ .GetObjectRef<EventEngine>()
184+ ->GetDNSResolver(
185+ EventEngine::DNSResolver::ResolverOptions ())
186+ : absl::InternalError(" EventEngine DNS is not enabled" )) {
186187 grpc_http_parser_init (&parser_, GRPC_HTTP_RESPONSE, response);
187188 grpc_slice_buffer_init (&incoming_);
188189 grpc_slice_buffer_init (&outgoing_);
@@ -222,21 +223,26 @@ void HttpRequest::Start() {
222223 Ref ().release (); // ref held by pending DNS resolution
223224 if (use_event_engine_dns_resolver_) {
224225 (*ee_resolver_)
225- ->LookupHostname (absl::bind_front (&HttpRequest::OnResolved, this ),
226- uri_.authority (), uri_.scheme ());
226+ ->LookupHostname (
227+ [this ](absl::StatusOr<std::vector<EventEngine::ResolvedAddress>>
228+ addresses_or) {
229+ ApplicationCallbackExecCtx callback_exec_ctx;
230+ ExecCtx exec_ctx;
231+ OnResolved (addresses_or);
232+ },
233+ uri_.authority (), uri_.scheme ());
227234 } else {
228235 dns_request_handle_ = resolver_->LookupHostname (
229- [this ](
230- absl::StatusOr<std::vector<grpc_resolved_address>> addresses_or) {
231- if (addresses_or.ok ()) {
232- std::vector<EventEngine::ResolvedAddress> addresses;
233- for (const auto & addr : *addresses_or) {
234- addresses.push_back (
236+ [this ](absl::StatusOr<std::vector<grpc_resolved_address>> addresses) {
237+ if (addresses.ok ()) {
238+ std::vector<EventEngine::ResolvedAddress> ee_addresses;
239+ for (const auto & addr : *addresses) {
240+ ee_addresses.push_back (
235241 grpc_event_engine::experimental::CreateResolvedAddress (addr));
236242 }
237- OnResolved (addresses );
243+ OnResolved (ee_addresses );
238244 } else {
239- OnResolved (addresses_or .status ());
245+ OnResolved (addresses .status ());
240246 }
241247 },
242248 uri_.authority (), uri_.scheme (), kDefaultDNSRequestTimeout ,
@@ -399,8 +405,6 @@ void HttpRequest::NextAddress(grpc_error_handle error) {
399405
400406void HttpRequest::OnResolved (
401407 absl::StatusOr<std::vector<EventEngine::ResolvedAddress>> addresses_or) {
402- ApplicationCallbackExecCtx callback_exec_ctx;
403- ExecCtx exec_ctx;
404408 RefCountedPtr<HttpRequest> unreffer (this );
405409 MutexLock lock (&mu_);
406410 if (use_event_engine_dns_resolver_) {
0 commit comments