Version: v0.27.3 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Dec 16, 2018 License: Apache-2.0 Imports: 11 Imported by: 0



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



This section is empty.


This section is empty.


This section is empty.


type Device

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

type DeviceList

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

type Envelope

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

type ExternalIPAddress

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

type ExternalIPAddressResponse

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

type NAT

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

func Discover() (nat NAT, err error)

type Root

type Root struct {
	Device Device

type ServiceList

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

type SoapBody

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

type UPNPCapabilities

type UPNPCapabilities struct {
	PortMapping bool
	Hairpin     bool

func Probe

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

type UPNPService

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL