NewOnAddresses creates a new PortForwarder with custom listen addresses.
(dialer httpstream.Dialer, addresses []string, ports []string, stopChan <-chan struct{}, readyChan chan struct{}, errChan chan<- error, out, errOut io.Writer)
| 162 | |
| 163 | // NewOnAddresses creates a new PortForwarder with custom listen addresses. |
| 164 | func NewOnAddresses(dialer httpstream.Dialer, addresses []string, ports []string, stopChan <-chan struct{}, readyChan chan struct{}, errChan chan<- error, out, errOut io.Writer) (*PortForwarder, error) { |
| 165 | if len(addresses) == 0 { |
| 166 | return nil, errors.New("you must specify at least 1 address") |
| 167 | } |
| 168 | parsedAddresses, err := parseAddresses(addresses) |
| 169 | if err != nil { |
| 170 | return nil, err |
| 171 | } |
| 172 | if len(ports) == 0 { |
| 173 | return nil, errors.New("you must specify at least 1 port") |
| 174 | } |
| 175 | parsedPorts, err := ParsePorts(ports) |
| 176 | if err != nil { |
| 177 | return nil, err |
| 178 | } |
| 179 | return &PortForwarder{ |
| 180 | dialer: dialer, |
| 181 | addresses: parsedAddresses, |
| 182 | ports: parsedPorts, |
| 183 | stopChan: stopChan, |
| 184 | Ready: readyChan, |
| 185 | out: out, |
| 186 | errChan: errChan, |
| 187 | errOut: errOut, |
| 188 | log: log.GetFileLogger("portforwarding"), |
| 189 | }, nil |
| 190 | } |
| 191 | |
| 192 | func (pf *PortForwarder) raiseError(err error) { |
| 193 | go func() { |
no test coverage detected