Documentation

Overview

    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

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    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"`
      }

      Source Files