Annotation of embedaddon/miniupnpc/upnpcommands.h, revision 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>