Annotation of embedaddon/miniupnpc/man3/miniupnpc.3, revision 1.1.1.2
1.1.1.2 ! misho 1: .TH MINIUPNPC 3
1.1 misho 2: .SH NAME
3: miniupnpc \- UPnP client library
4: .SH SYNOPSIS
5: .SH DESCRIPTION
6: The miniupnpc library implement the UPnP protocol defined
7: to dialog with Internet Gateway Devices. It also has
8: the ability to use data gathered by minissdpd(1) about
9: UPnP devices up on the network in order to skip the
10: long UPnP device discovery process.
11: .PP
12: At first, upnpDiscover(3) has to be used to discover UPnP IGD present
13: on the network. Then UPNP_GetValidIGD(3) to select the right one.
14: Alternatively, UPNP_GetIGDFromUrl(3) could be used to bypass discovery
15: process if the root description url of the device to use is known.
16: Then all the UPNP_* functions can be used, such as
17: UPNP_GetConnectionTypeInfo(3), UPNP_AddPortMapping(3), etc...
18: .SH "HEADER FILES"
19: .IP miniupnpc.h
20: That's the main header file for the miniupnpc library API.
21: It contains all the functions and structures related to device discovery.
22: .IP upnpcommands.h
23: This header file contain the UPnP IGD methods that are accessible
24: through the miniupnpc API. The name of the C functions are matching
25: the UPnP methods names. ie: GetGenericPortMappingEntry is
26: UPNP_GetGenericPortMappingEntry.
27: .SH "API FUNCTIONS"
1.1.1.2 ! misho 28: .IP "struct UPNPDev * upnpDiscover(int delay, const char * multicastif, const char * minissdpdsock, int localport, int ipv6, int * error);"
1.1 misho 29: execute the discovery process.
30: delay (in millisecond) is the maximum time for waiting any device response.
31: If available, device list will be obtained from MiniSSDPd.
32: Default path for minissdpd socket will be used if minissdpdsock argument is NULL.
33: If multicastif is not NULL, it will be used instead of the default multicast interface for sending SSDP discover packets.
1.1.1.2 ! misho 34: If localport is set to UPNP_LOCAL_PORT_SAME(1) SSDP packets will be sent
! 35: from the source port 1900 (same as destination port), if set to
! 36: UPNP_LOCAL_PORT_ANY(0) system assign a source port, any other value will
! 37: be attempted as the source port.
1.1 misho 38: If ipv6 is not 0, IPv6 is used instead of IPv4 for the discovery process.
39: .IP "void freeUPNPDevlist(struct UPNPDev * devlist);"
40: free the list returned by upnpDiscover().
41: .IP "int UPNP_GetValidIGD(struct UPNPDev * devlist, struct UPNPUrls * urls, struct IGDdatas * data, char * lanaddr, int lanaddrlen);"
42: browse the list of device returned by upnpDiscover(), find
43: a live UPnP internet gateway device and fill structures passed as arguments
1.1.1.2 ! misho 44: with data used for UPNP methods invocation.
1.1 misho 45: .IP "int UPNP_GetIGDFromUrl(const char * rootdescurl, struct UPNPUrls * urls, struct IGDdatas * data, char * lanaddr, int lanaddrlen);"
1.1.1.2 ! misho 46: permit one to bypass the upnpDiscover() call if the xml root description
1.1 misho 47: URL of the UPnP IGD is known.
48: Fill structures passed as arguments
1.1.1.2 ! misho 49: with data used for UPNP methods invocation.
1.1 misho 50: .IP "void GetUPNPUrls(struct UPNPUrls *, struct IGDdatas *, const char *);"
51: .IP "void FreeUPNPUrls(struct UPNPUrls *);"
52:
53: .SH "SEE ALSO"
54: minissdpd(1)
55: .SH BUGS
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>