Provided by: miniupnpc_1.9.20140610-4ubuntu2_amd64 bug

NAME

       miniupnpc - UPnP client library

SYNOPSIS

DESCRIPTION

       The  miniupnpc library implement the UPnP protocol defined to dialog with Internet Gateway
       Devices. It also has the ability to use data gathered by minissdpd(1) about  UPnP  devices
       up on the network in order to skip the long UPnP device discovery process.

       At first, upnpDiscover(3) has to be used to discover UPnP IGD present on the network. Then
       UPNP_GetValidIGD(3) to select the right one.  Alternatively,  UPNP_GetIGDFromUrl(3)  could
       be  used  to  bypass discovery process if the root description url of the device to use is
       known.  Then all the UPNP_* functions can be used, such as  UPNP_GetConnectionTypeInfo(3),
       UPNP_AddPortMapping(3), etc...

HEADER FILES

       miniupnpc.h
              That's  the  main  header  file for the miniupnpc library API.  It contains all the
              functions and structures related to device discovery.

       upnpcommands.h
              This header file contain the UPnP IGD  methods  that  are  accessible  through  the
              miniupnpc API. The name of the C functions are matching the UPnP methods names. ie:
              GetGenericPortMappingEntry is UPNP_GetGenericPortMappingEntry.

API FUNCTIONS

       struct  UPNPDev  *  upnpDiscover(int  delay,  const  char  *  multicastif,  const  char  *
       minissdpdsock, int sameport, int ipv6, int * error);
              execute  the  discovery  process.   delay  (in millisecond) is the maximum time for
              waiting any device response.  If available,  device  list  will  be  obtained  from
              MiniSSDPd.   Default  path  for  minissdpd  socket  will  be  used if minissdpdsock
              argument is NULL.  If multicastif is not NULL, it  will  be  used  instead  of  the
              default  multicast interface for sending SSDP discover packets.  If sameport is not
              null, SSDP packets will be sent from the source  port  1900  (same  as  destination
              port)  otherwise  system  assign  a  source  port.   If ipv6 is not 0, IPv6 is used
              instead of IPv4 for the discovery process.

       void freeUPNPDevlist(struct UPNPDev * devlist);
              free the list returned by upnpDiscover().

       int UPNP_GetValidIGD(struct UPNPDev * devlist, struct UPNPUrls * urls, struct  IGDdatas  *
       data, char * lanaddr, int lanaddrlen);
              browse  the  list  of  device returned by upnpDiscover(), find a live UPnP internet
              gateway device and fill structures passed as arguments  with  data  used  for  UPNP
              methods invocation.

       int UPNP_GetIGDFromUrl(const char * rootdescurl, struct UPNPUrls * urls, struct IGDdatas *
       data, char * lanaddr, int lanaddrlen);
              permit to bypass the upnpDiscover() call if the xml root  description  URL  of  the
              UPnP  IGD  is  known.   Fill structures passed as arguments with data used for UPNP
              methods invocation.

       void GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, const char *);

       void FreeUPNPUrls(struct UPNPUrls *);

SEE ALSO

       minissdpd(1)

BUGS

                                                                                     MINIUPNPC(3)