tendermint: github.com/tendermint/tendermint/p2p/upnp Index | Files

package upnp

import "github.com/tendermint/tendermint/p2p/upnp"

Taken from taipei-torrent. Just enough UPnP to be able to forward ports For more information, see: http://www.upnp-hacks.org/upnp.html

Index

Package Files

probe.go upnp.go

type Device Uses

type Device struct {
    XMLName     xml.Name    `xml:"device"`
    DeviceType  string      `xml:"deviceType"`
    DeviceList  DeviceList  `xml:"deviceList"`
    ServiceList ServiceList `xml:"serviceList"`
}

type DeviceList Uses

type DeviceList struct {
    Device []Device `xml:"device"`
}

type Envelope Uses

type Envelope struct {
    XMLName xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Envelope"`
    Soap    *SoapBody
}

type ExternalIPAddress Uses

type ExternalIPAddress struct {
    XMLName xml.Name `xml:"NewExternalIPAddress"`
    IP      string
}

type ExternalIPAddressResponse Uses

type ExternalIPAddressResponse struct {
    XMLName   xml.Name `xml:"GetExternalIPAddressResponse"`
    IPAddress string   `xml:"NewExternalIPAddress"`
}

type NAT Uses

type NAT interface {
    GetExternalAddress() (addr net.IP, err error)
    AddPortMapping(protocol string, externalPort, internalPort int, description string, timeout int) (mappedExternalPort int, err error)
    DeletePortMapping(protocol string, externalPort, internalPort int) (err error)
}

protocol is either "udp" or "tcp"

func Discover Uses

func Discover() (nat NAT, err error)

type Root Uses

type Root struct {
    Device Device
}

type ServiceList Uses

type ServiceList struct {
    Service []UPNPService `xml:"service"`
}

type SoapBody Uses

type SoapBody struct {
    XMLName    xml.Name `xml:"http://schemas.xmlsoap.org/soap/envelope/ Body"`
    ExternalIP *ExternalIPAddressResponse
}

type UPNPCapabilities Uses

type UPNPCapabilities struct {
    PortMapping bool
    Hairpin     bool
}

func Probe Uses

func Probe(logger log.Logger) (caps UPNPCapabilities, err error)

type UPNPService Uses

type UPNPService struct {
    ServiceType string `xml:"serviceType"`
    ControlURL  string `xml:"controlURL"`
}

Package upnp imports 11 packages (graph) and is imported by 5 packages. Updated 2019-09-14. Refresh now. Tools for package owners.