Annotation of embedaddon/miniupnpc/include/upnpcommands.h, revision 1.1.1.1
1.1 misho 1: /* $Id: upnpcommands.h,v 1.33 2019/02/10 12:29:25 nanard Exp $ */
2: /* Miniupnp project : http://miniupnp.free.fr/
3: * Author : Thomas Bernard
4: * Copyright (c) 2005-2018 Thomas Bernard
5: * This software is subject to the conditions detailed in the
6: * LICENCE file provided within this distribution */
7: #ifndef UPNPCOMMANDS_H_INCLUDED
8: #define UPNPCOMMANDS_H_INCLUDED
9:
10: #include "miniupnpc_declspec.h"
11: #include "miniupnpctypes.h"
12:
13: /* MiniUPnPc return codes : */
14: #define UPNPCOMMAND_SUCCESS (0)
15: #define UPNPCOMMAND_UNKNOWN_ERROR (-1)
16: #define UPNPCOMMAND_INVALID_ARGS (-2)
17: #define UPNPCOMMAND_HTTP_ERROR (-3)
18: #define UPNPCOMMAND_INVALID_RESPONSE (-4)
19: #define UPNPCOMMAND_MEM_ALLOC_ERROR (-5)
20:
21: #ifdef __cplusplus
22: extern "C" {
23: #endif
24:
25: struct PortMappingParserData;
26:
27: MINIUPNP_LIBSPEC UNSIGNED_INTEGER
28: UPNP_GetTotalBytesSent(const char * controlURL,
29: const char * servicetype);
30:
31: MINIUPNP_LIBSPEC UNSIGNED_INTEGER
32: UPNP_GetTotalBytesReceived(const char * controlURL,
33: const char * servicetype);
34:
35: MINIUPNP_LIBSPEC UNSIGNED_INTEGER
36: UPNP_GetTotalPacketsSent(const char * controlURL,
37: const char * servicetype);
38:
39: MINIUPNP_LIBSPEC UNSIGNED_INTEGER
40: UPNP_GetTotalPacketsReceived(const char * controlURL,
41: const char * servicetype);
42:
43: /* UPNP_GetStatusInfo()
44: * status and lastconnerror are 64 byte buffers
45: * Return values :
46: * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
47: * or a UPnP Error code */
48: MINIUPNP_LIBSPEC int
49: UPNP_GetStatusInfo(const char * controlURL,
50: const char * servicetype,
51: char * status,
52: unsigned int * uptime,
53: char * lastconnerror);
54:
55: /* UPNP_GetConnectionTypeInfo()
56: * argument connectionType is a 64 character buffer
57: * Return Values :
58: * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
59: * or a UPnP Error code */
60: MINIUPNP_LIBSPEC int
61: UPNP_GetConnectionTypeInfo(const char * controlURL,
62: const char * servicetype,
63: char * connectionType);
64:
65: /* UPNP_GetExternalIPAddress() call the corresponding UPNP method.
66: * if the third arg is not null the value is copied to it.
67: * at least 16 bytes must be available
68: *
69: * Return values :
70: * 0 : SUCCESS
71: * NON ZERO : ERROR Either an UPnP error code or an unknown error.
72: *
73: * possible UPnP Errors :
74: * 402 Invalid Args - See UPnP Device Architecture section on Control.
75: * 501 Action Failed - See UPnP Device Architecture section on Control. */
76: MINIUPNP_LIBSPEC int
77: UPNP_GetExternalIPAddress(const char * controlURL,
78: const char * servicetype,
79: char * extIpAdd);
80:
81: /* UPNP_GetLinkLayerMaxBitRates()
82: * call WANCommonInterfaceConfig:1#GetCommonLinkProperties
83: *
84: * return values :
85: * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
86: * or a UPnP Error Code. */
87: MINIUPNP_LIBSPEC int
88: UPNP_GetLinkLayerMaxBitRates(const char* controlURL,
89: const char* servicetype,
90: unsigned int * bitrateDown,
91: unsigned int * bitrateUp);
92:
93: /* UPNP_AddPortMapping()
94: * if desc is NULL, it will be defaulted to "libminiupnpc"
95: * remoteHost is usually NULL because IGD don't support it.
96: *
97: * Return values :
98: * 0 : SUCCESS
99: * NON ZERO : ERROR. Either an UPnP error code or an unknown error.
100: *
101: * List of possible UPnP errors for AddPortMapping :
102: * errorCode errorDescription (short) - Description (long)
103: * 402 Invalid Args - See UPnP Device Architecture section on Control.
104: * 501 Action Failed - See UPnP Device Architecture section on Control.
105: * 606 Action not authorized - The action requested REQUIRES authorization and
106: * the sender was not authorized.
107: * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be
108: * wild-carded
109: * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded
110: * 718 ConflictInMappingEntry - The port mapping entry specified conflicts
111: * with a mapping assigned previously to another client
112: * 724 SamePortValuesRequired - Internal and External port values
113: * must be the same
114: * 725 OnlyPermanentLeasesSupported - The NAT implementation only supports
115: * permanent lease times on port mappings
116: * 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard
117: * and cannot be a specific IP address or DNS name
118: * 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and
119: * cannot be a specific port value
120: * 728 NoPortMapsAvailable - There are not enough free ports available to
121: * complete port mapping.
122: * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed
123: * due to conflict with other mechanisms.
124: * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded
125: */
126: MINIUPNP_LIBSPEC int
127: UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
128: const char * extPort,
129: const char * inPort,
130: const char * inClient,
131: const char * desc,
132: const char * proto,
133: const char * remoteHost,
134: const char * leaseDuration);
135:
136: /* UPNP_AddAnyPortMapping()
137: * if desc is NULL, it will be defaulted to "libminiupnpc"
138: * remoteHost is usually NULL because IGD don't support it.
139: *
140: * Return values :
141: * 0 : SUCCESS
142: * NON ZERO : ERROR. Either an UPnP error code or an unknown error.
143: *
144: * List of possible UPnP errors for AddPortMapping :
145: * errorCode errorDescription (short) - Description (long)
146: * 402 Invalid Args - See UPnP Device Architecture section on Control.
147: * 501 Action Failed - See UPnP Device Architecture section on Control.
148: * 606 Action not authorized - The action requested REQUIRES authorization and
149: * the sender was not authorized.
150: * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be
151: * wild-carded
152: * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded
153: * 728 NoPortMapsAvailable - There are not enough free ports available to
154: * complete port mapping.
155: * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed
156: * due to conflict with other mechanisms.
157: * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded
158: */
159: MINIUPNP_LIBSPEC int
160: UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype,
161: const char * extPort,
162: const char * inPort,
163: const char * inClient,
164: const char * desc,
165: const char * proto,
166: const char * remoteHost,
167: const char * leaseDuration,
168: char * reservedPort);
169:
170: /* UPNP_DeletePortMapping()
171: * Use same argument values as what was used for AddPortMapping().
172: * remoteHost is usually NULL because IGD don't support it.
173: * Return Values :
174: * 0 : SUCCESS
175: * NON ZERO : error. Either an UPnP error code or an undefined error.
176: *
177: * List of possible UPnP errors for DeletePortMapping :
178: * 402 Invalid Args - See UPnP Device Architecture section on Control.
179: * 606 Action not authorized - The action requested REQUIRES authorization
180: * and the sender was not authorized.
181: * 714 NoSuchEntryInArray - The specified value does not exist in the array */
182: MINIUPNP_LIBSPEC int
183: UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
184: const char * extPort, const char * proto,
185: const char * remoteHost);
186:
187: /* UPNP_DeletePortRangeMapping()
188: * Use same argument values as what was used for AddPortMapping().
189: * remoteHost is usually NULL because IGD don't support it.
190: * Return Values :
191: * 0 : SUCCESS
192: * NON ZERO : error. Either an UPnP error code or an undefined error.
193: *
194: * List of possible UPnP errors for DeletePortMapping :
195: * 606 Action not authorized - The action requested REQUIRES authorization
196: * and the sender was not authorized.
197: * 730 PortMappingNotFound - This error message is returned if no port
198: * mapping is found in the specified range.
199: * 733 InconsistentParameters - NewStartPort and NewEndPort values are not consistent. */
200: MINIUPNP_LIBSPEC int
201: UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype,
202: const char * extPortStart, const char * extPortEnd,
203: const char * proto,
204: const char * manage);
205:
206: /* UPNP_GetPortMappingNumberOfEntries()
207: * not supported by all routers */
208: MINIUPNP_LIBSPEC int
209: UPNP_GetPortMappingNumberOfEntries(const char * controlURL,
210: const char * servicetype,
211: unsigned int * numEntries);
212:
213: /* UPNP_GetSpecificPortMappingEntry()
214: * retrieves an existing port mapping
215: * params :
216: * in extPort
217: * in proto
218: * in remoteHost
219: * out intClient (16 bytes)
220: * out intPort (6 bytes)
221: * out desc (80 bytes)
222: * out enabled (4 bytes)
223: * out leaseDuration (16 bytes)
224: *
225: * return value :
226: * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
227: * or a UPnP Error Code.
228: *
229: * List of possible UPnP errors for _GetSpecificPortMappingEntry :
230: * 402 Invalid Args - See UPnP Device Architecture section on Control.
231: * 501 Action Failed - See UPnP Device Architecture section on Control.
232: * 606 Action not authorized - The action requested REQUIRES authorization
233: * and the sender was not authorized.
234: * 714 NoSuchEntryInArray - The specified value does not exist in the array.
235: */
236: MINIUPNP_LIBSPEC int
237: UPNP_GetSpecificPortMappingEntry(const char * controlURL,
238: const char * servicetype,
239: const char * extPort,
240: const char * proto,
241: const char * remoteHost,
242: char * intClient,
243: char * intPort,
244: char * desc,
245: char * enabled,
246: char * leaseDuration);
247:
248: /* UPNP_GetGenericPortMappingEntry()
249: * params :
250: * in index
251: * out extPort (6 bytes)
252: * out intClient (16 bytes)
253: * out intPort (6 bytes)
254: * out protocol (4 bytes)
255: * out desc (80 bytes)
256: * out enabled (4 bytes)
257: * out rHost (64 bytes)
258: * out duration (16 bytes)
259: *
260: * return value :
261: * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
262: * or a UPnP Error Code.
263: *
264: * Possible UPNP Error codes :
265: * 402 Invalid Args - See UPnP Device Architecture section on Control.
266: * 606 Action not authorized - The action requested REQUIRES authorization
267: * and the sender was not authorized.
268: * 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds
269: */
270: MINIUPNP_LIBSPEC int
271: UPNP_GetGenericPortMappingEntry(const char * controlURL,
272: const char * servicetype,
273: const char * index,
274: char * extPort,
275: char * intClient,
276: char * intPort,
277: char * protocol,
278: char * desc,
279: char * enabled,
280: char * rHost,
281: char * duration);
282:
283: /* UPNP_GetListOfPortMappings() Available in IGD v2
284: *
285: *
286: * Possible UPNP Error codes :
287: * 606 Action not Authorized
288: * 730 PortMappingNotFound - no port mapping is found in the specified range.
289: * 733 InconsistantParameters - NewStartPort and NewEndPort values are not
290: * consistent.
291: */
292: MINIUPNP_LIBSPEC int
293: UPNP_GetListOfPortMappings(const char * controlURL,
294: const char * servicetype,
295: const char * startPort,
296: const char * endPort,
297: const char * protocol,
298: const char * numberOfPorts,
299: struct PortMappingParserData * data);
300:
301: /* IGD:2, functions for service WANIPv6FirewallControl:1 */
302: MINIUPNP_LIBSPEC int
303: UPNP_GetFirewallStatus(const char * controlURL,
304: const char * servicetype,
305: int * firewallEnabled,
306: int * inboundPinholeAllowed);
307:
308: MINIUPNP_LIBSPEC int
309: UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype,
310: const char * remoteHost,
311: const char * remotePort,
312: const char * intClient,
313: const char * intPort,
314: const char * proto,
315: int * opTimeout);
316:
317: MINIUPNP_LIBSPEC int
318: UPNP_AddPinhole(const char * controlURL, const char * servicetype,
319: const char * remoteHost,
320: const char * remotePort,
321: const char * intClient,
322: const char * intPort,
323: const char * proto,
324: const char * leaseTime,
325: char * uniqueID);
326:
327: MINIUPNP_LIBSPEC int
328: UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
329: const char * uniqueID,
330: const char * leaseTime);
331:
332: MINIUPNP_LIBSPEC int
333: UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID);
334:
335: MINIUPNP_LIBSPEC int
336: UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
337: const char * uniqueID, int * isWorking);
338:
339: MINIUPNP_LIBSPEC int
340: UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
341: const char * uniqueID, int * packets);
342:
343: #ifdef __cplusplus
344: }
345: #endif
346:
347: #endif
348:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>