opera-proxy/dialer/fixed.go
2024-11-03 15:21:23 +02:00

31 lines
673 B
Go

package dialer
import (
"context"
"net"
)
type FixedDialer struct {
fixedAddress string
next ContextDialer
}
func NewFixedDialer(address string, next ContextDialer) *FixedDialer {
return &FixedDialer{
fixedAddress: address,
next: next,
}
}
func (d *FixedDialer) DialContext(ctx context.Context, network, address string) (net.Conn, error) {
_, port, err := net.SplitHostPort(address)
if err != nil {
return nil, err
}
return d.next.DialContext(ctx, network, net.JoinHostPort(d.fixedAddress, port))
}
func (d *FixedDialer) Dial(network, address string) (net.Conn, error) {
return d.DialContext(context.Background(), network, address)
}