package proxy

import (
	"net"
)

// StubProxy is a proxy that is a stub (does nothing).
type StubProxy struct {
	frontendAddr net.Addr
	backendAddr  net.Addr
}

// Run does nothing.
func (p *StubProxy) Run() {}

// Close does nothing.
func (p *StubProxy) Close() {}

// FrontendAddr returns the frontend address.
func (p *StubProxy) FrontendAddr() net.Addr { return p.frontendAddr }

// BackendAddr returns the backend address.
func (p *StubProxy) BackendAddr() net.Addr { return p.backendAddr }

// NewStubProxy creates a new StubProxy
func NewStubProxy(frontendAddr, backendAddr net.Addr) (Proxy, error) {
	return &StubProxy{
		frontendAddr: frontendAddr,
		backendAddr:  backendAddr,
	}, nil
}
