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