go.dedis.ch/onet/v4@v4.0.0-pre1/simul/monitor/proxy.go (about)

     1  package monitor
     2  
     3  import (
     4  	"fmt"
     5  	"net"
     6  
     7  	"golang.org/x/xerrors"
     8  )
     9  
    10  // NewProxy returns a new TCP proxy listening on addr:listenPort, which forwards
    11  // connections to localhost:toPort.
    12  func NewProxy(toPort uint16, addr string, listenPort uint16) (*TCPProxy, error) {
    13  	ln, err := net.Listen("tcp", fmt.Sprintf("%v:%v", addr, listenPort))
    14  	if err != nil {
    15  		return nil, xerrors.Errorf("listening: %v", err)
    16  	}
    17  
    18  	e := make([]*net.SRV, 1)
    19  	e[0] = new(net.SRV)
    20  	e[0].Target = "localhost"
    21  	e[0].Port = toPort
    22  
    23  	return &TCPProxy{
    24  		Listener:  ln,
    25  		Endpoints: e,
    26  	}, nil
    27  }