/*
 *
 * Copyright 2017 gRPC authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

// Package passthrough implements a pass-through resolver. It sends the target // name without scheme back to gRPC as resolved address.
package passthrough import ( ) const scheme = "passthrough" type passthroughBuilder struct{} func (*passthroughBuilder) ( resolver.Target, resolver.ClientConn, resolver.BuildOptions) (resolver.Resolver, error) { if .Endpoint() == "" && .Dialer == nil { return nil, errors.New("passthrough: received empty target in Build()") } := &passthroughResolver{ target: , cc: , } .start() return , nil } func (*passthroughBuilder) () string { return scheme } type passthroughResolver struct { target resolver.Target cc resolver.ClientConn } func ( *passthroughResolver) () { .cc.UpdateState(resolver.State{Addresses: []resolver.Address{{Addr: .target.Endpoint()}}}) } func (*passthroughResolver) ( resolver.ResolveNowOptions) {} func (*passthroughResolver) () {} func () { resolver.Register(&passthroughBuilder{}) }