Annotation of embedaddon/miniupnpc/upnpcommands.h, revision 1.1.1.1

1.1       misho       1: /* $Id: upnpcommands.h,v 1.23 2011/04/11 09:14:00 nanard Exp $ */
                      2: /* Miniupnp project : http://miniupnp.free.fr/
                      3:  * Author : Thomas Bernard
                      4:  * Copyright (c) 2005-2011 Thomas Bernard
                      5:  * This software is subject to the conditions detailed in the
                      6:  * LICENCE file provided within this distribution */
                      7: #ifndef __UPNPCOMMANDS_H__
                      8: #define __UPNPCOMMANDS_H__
                      9: 
                     10: #include "upnpreplyparse.h"
                     11: #include "portlistingparse.h"
                     12: #include "declspec.h"
                     13: #include "miniupnpctypes.h"
                     14: 
                     15: /* MiniUPnPc return codes : */
                     16: #define UPNPCOMMAND_SUCCESS (0)
                     17: #define UPNPCOMMAND_UNKNOWN_ERROR (-1)
                     18: #define UPNPCOMMAND_INVALID_ARGS (-2)
                     19: #define UPNPCOMMAND_HTTP_ERROR (-3)
                     20: 
                     21: #ifdef __cplusplus
                     22: extern "C" {
                     23: #endif
                     24: 
                     25: LIBSPEC UNSIGNED_INTEGER
                     26: UPNP_GetTotalBytesSent(const char * controlURL,
                     27:                                        const char * servicetype);
                     28: 
                     29: LIBSPEC UNSIGNED_INTEGER
                     30: UPNP_GetTotalBytesReceived(const char * controlURL,
                     31:                                                const char * servicetype);
                     32: 
                     33: LIBSPEC UNSIGNED_INTEGER
                     34: UPNP_GetTotalPacketsSent(const char * controlURL,
                     35:                                        const char * servicetype);
                     36: 
                     37: LIBSPEC UNSIGNED_INTEGER
                     38: UPNP_GetTotalPacketsReceived(const char * controlURL,
                     39:                                        const char * servicetype);
                     40: 
                     41: /* UPNP_GetStatusInfo()
                     42:  * status and lastconnerror are 64 byte buffers
                     43:  * Return values :
                     44:  * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
                     45:  * or a UPnP Error code */
                     46: LIBSPEC int
                     47: UPNP_GetStatusInfo(const char * controlURL,
                     48:                               const char * servicetype,
                     49:                                   char * status,
                     50:                                   unsigned int * uptime,
                     51:                    char * lastconnerror);
                     52: 
                     53: /* UPNP_GetConnectionTypeInfo()
                     54:  * argument connectionType is a 64 character buffer
                     55:  * Return Values :
                     56:  * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
                     57:  * or a UPnP Error code */
                     58: LIBSPEC int
                     59: UPNP_GetConnectionTypeInfo(const char * controlURL,
                     60:                            const char * servicetype,
                     61:                                                   char * connectionType);
                     62: 
                     63: /* UPNP_GetExternalIPAddress() call the corresponding UPNP method.
                     64:  * if the third arg is not null the value is copied to it.
                     65:  * at least 16 bytes must be available 
                     66:  *
                     67:  * Return values :
                     68:  * 0 : SUCCESS
                     69:  * NON ZERO : ERROR Either an UPnP error code or an unknown error.
                     70:  * 
                     71:  * possible UPnP Errors :
                     72:  * 402 Invalid Args - See UPnP Device Architecture section on Control.
                     73:  * 501 Action Failed - See UPnP Device Architecture section on Control. */
                     74: LIBSPEC int
                     75: UPNP_GetExternalIPAddress(const char * controlURL,
                     76:                           const char * servicetype,
                     77:                           char * extIpAdd);
                     78: 
                     79: /* UPNP_GetLinkLayerMaxBitRates()
                     80:  * call WANCommonInterfaceConfig:1#GetCommonLinkProperties
                     81:  *
                     82:  * return values :
                     83:  * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
                     84:  * or a UPnP Error Code. */
                     85: LIBSPEC int
                     86: UPNP_GetLinkLayerMaxBitRates(const char* controlURL,
                     87:                                                        const char* servicetype,
                     88:                                                        unsigned int * bitrateDown,
                     89:                                                        unsigned int * bitrateUp);
                     90: 
                     91: /* UPNP_AddPortMapping()
                     92:  * if desc is NULL, it will be defaulted to "libminiupnpc"
                     93:  * remoteHost is usually NULL because IGD don't support it.
                     94:  *
                     95:  * Return values :
                     96:  * 0 : SUCCESS
                     97:  * NON ZERO : ERROR. Either an UPnP error code or an unknown error.
                     98:  * 
                     99:  * List of possible UPnP errors for AddPortMapping :
                    100:  * errorCode errorDescription (short) - Description (long)
                    101:  * 402 Invalid Args - See UPnP Device Architecture section on Control.
                    102:  * 501 Action Failed - See UPnP Device Architecture section on Control.
                    103:  * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be
                    104:  *                                   wild-carded
                    105:  * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded
                    106:  * 718 ConflictInMappingEntry - The port mapping entry specified conflicts
                    107:  *                     with a mapping assigned previously to another client
                    108:  * 724 SamePortValuesRequired - Internal and External port values
                    109:  *                              must be the same 
                    110:  * 725 OnlyPermanentLeasesSupported - The NAT implementation only supports
                    111:  *                  permanent lease times on port mappings
                    112:  * 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard
                    113:  *                             and cannot be a specific IP address or DNS name
                    114:  * 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and
                    115:  *                                        cannot be a specific port value */
                    116: LIBSPEC int
                    117: UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
                    118:                     const char * extPort,
                    119:                                    const char * inPort,
                    120:                                        const char * inClient,
                    121:                                        const char * desc,
                    122:                     const char * proto,
                    123:                     const char * remoteHost,
                    124:                     const char * leaseDuration);
                    125: 
                    126: /* UPNP_DeletePortMapping()
                    127:  * Use same argument values as what was used for AddPortMapping().
                    128:  * remoteHost is usually NULL because IGD don't support it.
                    129:  * Return Values :
                    130:  * 0 : SUCCESS
                    131:  * NON ZERO : error. Either an UPnP error code or an undefined error.
                    132:  *
                    133:  * List of possible UPnP errors for DeletePortMapping :
                    134:  * 402 Invalid Args - See UPnP Device Architecture section on Control.
                    135:  * 714 NoSuchEntryInArray - The specified value does not exist in the array */
                    136: LIBSPEC int
                    137: UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
                    138:                        const char * extPort, const char * proto,
                    139:                        const char * remoteHost);
                    140: 
                    141: /* UPNP_GetPortMappingNumberOfEntries()
                    142:  * not supported by all routers */
                    143: LIBSPEC int
                    144: UPNP_GetPortMappingNumberOfEntries(const char* controlURL,
                    145:                                    const char* servicetype,
                    146:                                    unsigned int * num);
                    147: 
                    148: /* UPNP_GetSpecificPortMappingEntry()
                    149:  *    retrieves an existing port mapping
                    150:  * params :
                    151:  *  in   extPort
                    152:  *  in   proto
                    153:  *  out  intClient (16 bytes)
                    154:  *  out  intPort (6 bytes)
                    155:  *  out  desc (80 bytes)
                    156:  *  out  enabled (4 bytes)
                    157:  *  out  leaseDuration (16 bytes)
                    158:  *
                    159:  * return value :
                    160:  * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
                    161:  * or a UPnP Error Code. */
                    162: LIBSPEC int
                    163: UPNP_GetSpecificPortMappingEntry(const char * controlURL,
                    164:                                  const char * servicetype,
                    165:                                  const char * extPort,
                    166:                                  const char * proto,
                    167:                                  char * intClient,
                    168:                                  char * intPort,
                    169:                                  char * desc,
                    170:                                  char * enabled,
                    171:                                  char * leaseDuration);
                    172: 
                    173: /* UPNP_GetGenericPortMappingEntry()
                    174:  * params :
                    175:  *  in   index
                    176:  *  out  extPort (6 bytes)
                    177:  *  out  intClient (16 bytes)
                    178:  *  out  intPort (6 bytes)
                    179:  *  out  protocol (4 bytes)
                    180:  *  out  desc (80 bytes)
                    181:  *  out  enabled (4 bytes)
                    182:  *  out  rHost (64 bytes)
                    183:  *  out  duration (16 bytes)
                    184:  *
                    185:  * return value :
                    186:  * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
                    187:  * or a UPnP Error Code.
                    188:  *
                    189:  * Possible UPNP Error codes :
                    190:  * 402 Invalid Args - See UPnP Device Architecture section on Control.
                    191:  * 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds
                    192:  */
                    193: LIBSPEC int
                    194: UPNP_GetGenericPortMappingEntry(const char * controlURL,
                    195:                                 const char * servicetype,
                    196:                                                                const char * index,
                    197:                                                                char * extPort,
                    198:                                                                char * intClient,
                    199:                                                                char * intPort,
                    200:                                                                char * protocol,
                    201:                                                                char * desc,
                    202:                                                                char * enabled,
                    203:                                                                char * rHost,
                    204:                                                                char * duration);
                    205: 
                    206: /* UPNP_GetListOfPortMappings()      Available in IGD v2
                    207:  *
                    208:  *
                    209:  * Possible UPNP Error codes :
                    210:  * 606 Action not Authorized
                    211:  * 730 PortMappingNotFound - no port mapping is found in the specified range.
                    212:  * 733 InconsistantParameters - NewStartPort and NewEndPort values are not
                    213:  *                              consistent.
                    214:  */
                    215: LIBSPEC int
                    216: UPNP_GetListOfPortMappings(const char * controlURL,
                    217:                            const char * servicetype,
                    218:                            const char * startPort,
                    219:                            const char * endPort,
                    220:                            const char * protocol,
                    221:                            const char * numberOfPorts,
                    222:                            struct PortMappingParserData * data);
                    223: 
                    224: /* IGD:2, functions for service WANIPv6FirewallControl:1 */ 
                    225: LIBSPEC int
                    226: UPNP_GetFirewallStatus(const char * controlURL,
                    227:                                const char * servicetype,
                    228:                                int * firewallEnabled, 
                    229:                                int * inboundPinholeAllowed);
                    230: 
                    231: LIBSPEC int
                    232: UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype,
                    233:                     const char * remoteHost,
                    234:                     const char * remotePort,
                    235:                     const char * intClient,
                    236:                     const char * intPort,
                    237:                     const char * proto,
                    238:                     int * opTimeout);
                    239: 
                    240: LIBSPEC int
                    241: UPNP_AddPinhole(const char * controlURL, const char * servicetype,
                    242:                     const char * remoteHost,
                    243:                     const char * remotePort,
                    244:                     const char * intClient,
                    245:                     const char * intPort,
                    246:                     const char * proto,
                    247:                     const char * leaseTime,
                    248:                     char * uniqueID);
                    249: 
                    250: LIBSPEC int
                    251: UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
                    252:                     const char * uniqueID,
                    253:                     const char * leaseTime);
                    254: 
                    255: LIBSPEC int
                    256: UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID);
                    257: 
                    258: LIBSPEC int
                    259: UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
                    260:                                  const char * uniqueID, int * isWorking);
                    261: 
                    262: LIBSPEC int
                    263: UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
                    264:                                  const char * uniqueID, int * packets);
                    265: 
                    266: #ifdef __cplusplus
                    267: }
                    268: #endif
                    269: 
                    270: #endif
                    271: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>