Import CRI remote client package.
Signed-off-by: Lantao Liu <lantaol@google.com>
This commit is contained in:
		
							
								
								
									
										79
									
								
								vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unix.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								vendor/k8s.io/kubernetes/pkg/kubelet/util/util_unix.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
			
		||||
// +build freebsd linux
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2017 The Kubernetes 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 util
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net"
 | 
			
		||||
	"os"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"github.com/golang/glog"
 | 
			
		||||
	"golang.org/x/sys/unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// unixProtocol is the network protocol of unix socket.
 | 
			
		||||
	unixProtocol = "unix"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func CreateListener(endpoint string) (net.Listener, error) {
 | 
			
		||||
	protocol, addr, err := parseEndpointWithFallbackProtocol(endpoint, unixProtocol)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if protocol != unixProtocol {
 | 
			
		||||
		return nil, fmt.Errorf("only support unix socket endpoint")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Unlink to cleanup the previous socket file.
 | 
			
		||||
	err = unix.Unlink(addr)
 | 
			
		||||
	if err != nil && !os.IsNotExist(err) {
 | 
			
		||||
		return nil, fmt.Errorf("failed to unlink socket file %q: %v", addr, err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return net.Listen(protocol, addr)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func GetAddressAndDialer(endpoint string) (string, func(addr string, timeout time.Duration) (net.Conn, error), error) {
 | 
			
		||||
	protocol, addr, err := parseEndpointWithFallbackProtocol(endpoint, unixProtocol)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return "", nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if protocol != unixProtocol {
 | 
			
		||||
		return "", nil, fmt.Errorf("only support unix socket endpoint")
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return addr, dial, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func dial(addr string, timeout time.Duration) (net.Conn, error) {
 | 
			
		||||
	return net.DialTimeout(unixProtocol, addr, timeout)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func parseEndpointWithFallbackProtocol(endpoint string, fallbackProtocol string) (protocol string, addr string, err error) {
 | 
			
		||||
	if protocol, addr, err = parseEndpoint(endpoint); err != nil && protocol == "" {
 | 
			
		||||
		fallbackEndpoint := fallbackProtocol + "://" + endpoint
 | 
			
		||||
		protocol, addr, err = parseEndpoint(fallbackEndpoint)
 | 
			
		||||
		if err == nil {
 | 
			
		||||
			glog.Warningf("Using %q as endpoint is deprecated, please consider using full url format %q.", endpoint, fallbackEndpoint)
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	return
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user