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