File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpc / include / upnpcommands.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Sep 27 11:21:37 2023 UTC (12 months ago) by misho
Branches: miniupnpc, MAIN
CVS tags: v2_2_5p0, HEAD
Version 2.2.5p0

    1: /* $Id: upnpcommands.h,v 1.1.1.1 2023/09/27 11:21:37 misho 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>