home | help
MINIUPNPC(3)		    Library Functions Manual		    MINIUPNPC(3)

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.	Alterna-
     tively,  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  con-
	    tains 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_Get-
	    GenericPortMappingEntry.

API FUNCTIONS
     struct UPNPDev * upnpDiscover(int delay, const char * multicastif, const
     char * minissdpdsock, int localport, int ipv6, int * error);
	    execute the discovery process.  delay (in millisecond) is the  maxi-
	    mum 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 localport is set to UPNP_LO-
	    CAL_PORT_SAME(1) SSDP packets will be sent from the source port 1900
	    (same as destination port), if set to UPNP_LOCAL_PORT_ANY(0)  system
	    assign  a  source  port,  any  other  value will be attempted as the
	    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, char * wanaddr, int
     wanaddrlen);
	    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  one  to  bypass  the upnpDiscover() call if the xml root de-
	    scription 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)

home | help