123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- /* $Id: upnpcommands.h,v 1.32 2018/03/13 23:34:47 nanard Exp $ */
- /* Miniupnp project : http://miniupnp.free.fr/
- * Author : Thomas Bernard
- * Copyright (c) 2005-2018 Thomas Bernard
- * This software is subject to the conditions detailed in the
- * LICENCE file provided within this distribution */
- #ifndef UPNPCOMMANDS_H_INCLUDED
- #define UPNPCOMMANDS_H_INCLUDED
- #include "miniupnpc_declspec.h"
- #include "miniupnpctypes.h"
- /* MiniUPnPc return codes : */
- #define UPNPCOMMAND_SUCCESS (0)
- #define UPNPCOMMAND_UNKNOWN_ERROR (-1)
- #define UPNPCOMMAND_INVALID_ARGS (-2)
- #define UPNPCOMMAND_HTTP_ERROR (-3)
- #define UPNPCOMMAND_INVALID_RESPONSE (-4)
- #define UPNPCOMMAND_MEM_ALLOC_ERROR (-5)
- #ifdef __cplusplus
- extern "C" {
- #endif
- struct PortMappingParserData;
- MINIUPNP_LIBSPEC UNSIGNED_INTEGER
- UPNP_GetTotalBytesSent(const char * controlURL,
- const char * servicetype);
- MINIUPNP_LIBSPEC UNSIGNED_INTEGER
- UPNP_GetTotalBytesReceived(const char * controlURL,
- const char * servicetype);
- MINIUPNP_LIBSPEC UNSIGNED_INTEGER
- UPNP_GetTotalPacketsSent(const char * controlURL,
- const char * servicetype);
- MINIUPNP_LIBSPEC UNSIGNED_INTEGER
- UPNP_GetTotalPacketsReceived(const char * controlURL,
- const char * servicetype);
- /* UPNP_GetStatusInfo()
- * status and lastconnerror are 64 byte buffers
- * Return values :
- * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
- * or a UPnP Error code */
- MINIUPNP_LIBSPEC int
- UPNP_GetStatusInfo(const char * controlURL,
- const char * servicetype,
- char * status,
- unsigned int * uptime,
- char * lastconnerror);
- /* UPNP_GetConnectionTypeInfo()
- * argument connectionType is a 64 character buffer
- * Return Values :
- * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
- * or a UPnP Error code */
- MINIUPNP_LIBSPEC int
- UPNP_GetConnectionTypeInfo(const char * controlURL,
- const char * servicetype,
- char * connectionType);
- /* UPNP_GetExternalIPAddress() call the corresponding UPNP method.
- * if the third arg is not null the value is copied to it.
- * at least 16 bytes must be available
- *
- * Return values :
- * 0 : SUCCESS
- * NON ZERO : ERROR Either an UPnP error code or an unknown error.
- *
- * possible UPnP Errors :
- * 402 Invalid Args - See UPnP Device Architecture section on Control.
- * 501 Action Failed - See UPnP Device Architecture section on Control. */
- MINIUPNP_LIBSPEC int
- UPNP_GetExternalIPAddress(const char * controlURL,
- const char * servicetype,
- char * extIpAdd);
- /* UPNP_GetLinkLayerMaxBitRates()
- * call WANCommonInterfaceConfig:1#GetCommonLinkProperties
- *
- * return values :
- * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
- * or a UPnP Error Code. */
- MINIUPNP_LIBSPEC int
- UPNP_GetLinkLayerMaxBitRates(const char* controlURL,
- const char* servicetype,
- unsigned int * bitrateDown,
- unsigned int * bitrateUp);
- /* UPNP_AddPortMapping()
- * if desc is NULL, it will be defaulted to "libminiupnpc"
- * remoteHost is usually NULL because IGD don't support it.
- *
- * Return values :
- * 0 : SUCCESS
- * NON ZERO : ERROR. Either an UPnP error code or an unknown error.
- *
- * List of possible UPnP errors for AddPortMapping :
- * errorCode errorDescription (short) - Description (long)
- * 402 Invalid Args - See UPnP Device Architecture section on Control.
- * 501 Action Failed - See UPnP Device Architecture section on Control.
- * 606 Action not authorized - The action requested REQUIRES authorization and
- * the sender was not authorized.
- * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be
- * wild-carded
- * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded
- * 718 ConflictInMappingEntry - The port mapping entry specified conflicts
- * with a mapping assigned previously to another client
- * 724 SamePortValuesRequired - Internal and External port values
- * must be the same
- * 725 OnlyPermanentLeasesSupported - The NAT implementation only supports
- * permanent lease times on port mappings
- * 726 RemoteHostOnlySupportsWildcard - RemoteHost must be a wildcard
- * and cannot be a specific IP address or DNS name
- * 727 ExternalPortOnlySupportsWildcard - ExternalPort must be a wildcard and
- * cannot be a specific port value
- * 728 NoPortMapsAvailable - There are not enough free ports available to
- * complete port mapping.
- * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed
- * due to conflict with other mechanisms.
- * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded
- */
- MINIUPNP_LIBSPEC int
- UPNP_AddPortMapping(const char * controlURL, const char * servicetype,
- const char * extPort,
- const char * inPort,
- const char * inClient,
- const char * desc,
- const char * proto,
- const char * remoteHost,
- const char * leaseDuration);
- /* UPNP_AddAnyPortMapping()
- * if desc is NULL, it will be defaulted to "libminiupnpc"
- * remoteHost is usually NULL because IGD don't support it.
- *
- * Return values :
- * 0 : SUCCESS
- * NON ZERO : ERROR. Either an UPnP error code or an unknown error.
- *
- * List of possible UPnP errors for AddPortMapping :
- * errorCode errorDescription (short) - Description (long)
- * 402 Invalid Args - See UPnP Device Architecture section on Control.
- * 501 Action Failed - See UPnP Device Architecture section on Control.
- * 606 Action not authorized - The action requested REQUIRES authorization and
- * the sender was not authorized.
- * 715 WildCardNotPermittedInSrcIP - The source IP address cannot be
- * wild-carded
- * 716 WildCardNotPermittedInExtPort - The external port cannot be wild-carded
- * 728 NoPortMapsAvailable - There are not enough free ports available to
- * complete port mapping.
- * 729 ConflictWithOtherMechanisms - Attempted port mapping is not allowed
- * due to conflict with other mechanisms.
- * 732 WildCardNotPermittedInIntPort - The internal port cannot be wild-carded
- */
- MINIUPNP_LIBSPEC int
- UPNP_AddAnyPortMapping(const char * controlURL, const char * servicetype,
- const char * extPort,
- const char * inPort,
- const char * inClient,
- const char * desc,
- const char * proto,
- const char * remoteHost,
- const char * leaseDuration,
- char * reservedPort);
- /* UPNP_DeletePortMapping()
- * Use same argument values as what was used for AddPortMapping().
- * remoteHost is usually NULL because IGD don't support it.
- * Return Values :
- * 0 : SUCCESS
- * NON ZERO : error. Either an UPnP error code or an undefined error.
- *
- * List of possible UPnP errors for DeletePortMapping :
- * 402 Invalid Args - See UPnP Device Architecture section on Control.
- * 606 Action not authorized - The action requested REQUIRES authorization
- * and the sender was not authorized.
- * 714 NoSuchEntryInArray - The specified value does not exist in the array */
- MINIUPNP_LIBSPEC int
- UPNP_DeletePortMapping(const char * controlURL, const char * servicetype,
- const char * extPort, const char * proto,
- const char * remoteHost);
- /* UPNP_DeletePortRangeMapping()
- * Use same argument values as what was used for AddPortMapping().
- * remoteHost is usually NULL because IGD don't support it.
- * Return Values :
- * 0 : SUCCESS
- * NON ZERO : error. Either an UPnP error code or an undefined error.
- *
- * List of possible UPnP errors for DeletePortMapping :
- * 606 Action not authorized - The action requested REQUIRES authorization
- * and the sender was not authorized.
- * 730 PortMappingNotFound - This error message is returned if no port
- * mapping is found in the specified range.
- * 733 InconsistentParameters - NewStartPort and NewEndPort values are not consistent. */
- MINIUPNP_LIBSPEC int
- UPNP_DeletePortMappingRange(const char * controlURL, const char * servicetype,
- const char * extPortStart, const char * extPortEnd,
- const char * proto,
- const char * manage);
- /* UPNP_GetPortMappingNumberOfEntries()
- * not supported by all routers */
- MINIUPNP_LIBSPEC int
- UPNP_GetPortMappingNumberOfEntries(const char* controlURL,
- const char* servicetype,
- unsigned int * num);
- /* UPNP_GetSpecificPortMappingEntry()
- * retrieves an existing port mapping
- * params :
- * in extPort
- * in proto
- * in remoteHost
- * out intClient (16 bytes)
- * out intPort (6 bytes)
- * out desc (80 bytes)
- * out enabled (4 bytes)
- * out leaseDuration (16 bytes)
- *
- * return value :
- * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
- * or a UPnP Error Code.
- *
- * List of possible UPnP errors for _GetSpecificPortMappingEntry :
- * 402 Invalid Args - See UPnP Device Architecture section on Control.
- * 501 Action Failed - See UPnP Device Architecture section on Control.
- * 606 Action not authorized - The action requested REQUIRES authorization
- * and the sender was not authorized.
- * 714 NoSuchEntryInArray - The specified value does not exist in the array.
- */
- MINIUPNP_LIBSPEC int
- UPNP_GetSpecificPortMappingEntry(const char * controlURL,
- const char * servicetype,
- const char * extPort,
- const char * proto,
- const char * remoteHost,
- char * intClient,
- char * intPort,
- char * desc,
- char * enabled,
- char * leaseDuration);
- /* UPNP_GetGenericPortMappingEntry()
- * params :
- * in index
- * out extPort (6 bytes)
- * out intClient (16 bytes)
- * out intPort (6 bytes)
- * out protocol (4 bytes)
- * out desc (80 bytes)
- * out enabled (4 bytes)
- * out rHost (64 bytes)
- * out duration (16 bytes)
- *
- * return value :
- * UPNPCOMMAND_SUCCESS, UPNPCOMMAND_INVALID_ARGS, UPNPCOMMAND_UNKNOWN_ERROR
- * or a UPnP Error Code.
- *
- * Possible UPNP Error codes :
- * 402 Invalid Args - See UPnP Device Architecture section on Control.
- * 606 Action not authorized - The action requested REQUIRES authorization
- * and the sender was not authorized.
- * 713 SpecifiedArrayIndexInvalid - The specified array index is out of bounds
- */
- MINIUPNP_LIBSPEC int
- UPNP_GetGenericPortMappingEntry(const char * controlURL,
- const char * servicetype,
- const char * index,
- char * extPort,
- char * intClient,
- char * intPort,
- char * protocol,
- char * desc,
- char * enabled,
- char * rHost,
- char * duration);
- /* UPNP_GetListOfPortMappings() Available in IGD v2
- *
- *
- * Possible UPNP Error codes :
- * 606 Action not Authorized
- * 730 PortMappingNotFound - no port mapping is found in the specified range.
- * 733 InconsistantParameters - NewStartPort and NewEndPort values are not
- * consistent.
- */
- MINIUPNP_LIBSPEC int
- UPNP_GetListOfPortMappings(const char * controlURL,
- const char * servicetype,
- const char * startPort,
- const char * endPort,
- const char * protocol,
- const char * numberOfPorts,
- struct PortMappingParserData * data);
- /* IGD:2, functions for service WANIPv6FirewallControl:1 */
- MINIUPNP_LIBSPEC int
- UPNP_GetFirewallStatus(const char * controlURL,
- const char * servicetype,
- int * firewallEnabled,
- int * inboundPinholeAllowed);
- MINIUPNP_LIBSPEC int
- UPNP_GetOutboundPinholeTimeout(const char * controlURL, const char * servicetype,
- const char * remoteHost,
- const char * remotePort,
- const char * intClient,
- const char * intPort,
- const char * proto,
- int * opTimeout);
- MINIUPNP_LIBSPEC int
- UPNP_AddPinhole(const char * controlURL, const char * servicetype,
- const char * remoteHost,
- const char * remotePort,
- const char * intClient,
- const char * intPort,
- const char * proto,
- const char * leaseTime,
- char * uniqueID);
- MINIUPNP_LIBSPEC int
- UPNP_UpdatePinhole(const char * controlURL, const char * servicetype,
- const char * uniqueID,
- const char * leaseTime);
- MINIUPNP_LIBSPEC int
- UPNP_DeletePinhole(const char * controlURL, const char * servicetype, const char * uniqueID);
- MINIUPNP_LIBSPEC int
- UPNP_CheckPinholeWorking(const char * controlURL, const char * servicetype,
- const char * uniqueID, int * isWorking);
- MINIUPNP_LIBSPEC int
- UPNP_GetPinholePackets(const char * controlURL, const char * servicetype,
- const char * uniqueID, int * packets);
- #ifdef __cplusplus
- }
- #endif
- #endif
|