github.com/zhuohuang-hust/src-cbuild@v0.0.0-20230105071821-c7aab3e7c840/mergeCode/libnetwork/portmapper/proxy_solaris.go (about)

     1  package portmapper
     2  
     3  import (
     4  	"net"
     5  	"os/exec"
     6  	"strconv"
     7  )
     8  
     9  func newProxyCommand(proto string, hostIP net.IP, hostPort int, containerIP net.IP, containerPort int, proxyPath string) (userlandProxy, error) {
    10  	path := proxyPath
    11  	if proxyPath == "" {
    12  		cmd, err := exec.LookPath(userlandProxyCommandName)
    13  		if err != nil {
    14  			return nil, err
    15  		}
    16  		path = cmd
    17  	}
    18  
    19  	args := []string{
    20  		path,
    21  		"-proto", proto,
    22  		"-host-ip", hostIP.String(),
    23  		"-host-port", strconv.Itoa(hostPort),
    24  		"-container-ip", containerIP.String(),
    25  		"-container-port", strconv.Itoa(containerPort),
    26  	}
    27  
    28  	return &proxyCommand{
    29  		cmd: &exec.Cmd{
    30  			Path: path,
    31  			Args: args,
    32  		},
    33  	}, nil
    34  }