Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Mapper ¶
type Mapper struct {
// contains filtered or unexported fields
}
Mapper attempts to open a set of ports on a router
func NewPortMapper ¶
NewPortMapper returns an initialized mapper
func (*Mapper) Map ¶
func (m *Mapper) Map( intPort uint16, extPort uint16, desc string, ip *utils.Atomic[netip.AddrPort], updateTime time.Duration, )
Map external port [extPort] (exposed to the internet) to internal port [intPort] (where our process is listening) and set [ip]. Does this every [updateTime]. [ip] may be nil.
func (*Mapper) UnmapAllPorts ¶
func (m *Mapper) UnmapAllPorts()
UnmapAllPorts stops mapping all ports from this mapper and attempts to unmap them.
type Router ¶
type Router interface { // True iff this router supports NAT SupportsNAT() bool // Map external port [extPort] to internal port [intPort] for [duration] MapPort(intPort, extPort uint16, desc string, duration time.Duration) error // Undo a port mapping UnmapPort(intPort, extPort uint16) error // Return our external IP ExternalIP() (netip.Addr, error) }
Router describes the functionality that a network device must support to be able to open ports to an external IP.
func NewNoRouter ¶
func NewNoRouter() Router
NewNoRouter returns a router that assumes the network is public
Click to show internal directories.
Click to hide internal directories.