123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*
- * Copyright 2019 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.
- */
- import { Resolver, ResolverListener, registerResolver } from './resolver';
- import { Endpoint } from './subchannel-address';
- import { GrpcUri } from './uri-parser';
- import { ChannelOptions } from './channel-options';
- class UdsResolver implements Resolver {
- private hasReturnedResult = false;
- private endpoints: Endpoint[] = [];
- constructor(
- target: GrpcUri,
- private listener: ResolverListener,
- channelOptions: ChannelOptions
- ) {
- let path: string;
- if (target.authority === '') {
- path = '/' + target.path;
- } else {
- path = target.path;
- }
- this.endpoints = [{ addresses: [{ path }] }];
- }
- updateResolution(): void {
- if (!this.hasReturnedResult) {
- this.hasReturnedResult = true;
- process.nextTick(
- this.listener.onSuccessfulResolution,
- this.endpoints,
- null,
- null,
- null,
- {}
- );
- }
- }
- destroy() {
- this.hasReturnedResult = false;
- }
- static getDefaultAuthority(target: GrpcUri): string {
- return 'localhost';
- }
- }
- export function setup() {
- registerResolver('unix', UdsResolver);
- }
|