You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.8 KiB
65 lines
1.8 KiB
/* $Id: portlistingparse.h,v 1.10 2014/11/01 10:37:32 nanard Exp $ */ |
|
/* MiniUPnP project |
|
* http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/ |
|
* (c) 2011-2015 Thomas Bernard |
|
* This software is subject to the conditions detailed |
|
* in the LICENCE file provided within the distribution */ |
|
#ifndef PORTLISTINGPARSE_H_INCLUDED |
|
#define PORTLISTINGPARSE_H_INCLUDED |
|
|
|
#include "miniupnpc_declspec.h" |
|
/* for the definition of UNSIGNED_INTEGER */ |
|
#include "miniupnpctypes.h" |
|
|
|
#ifdef __cplusplus |
|
extern "C" { |
|
#endif |
|
|
|
/* sample of PortMappingEntry : |
|
<p:PortMappingEntry> |
|
<p:NewRemoteHost>202.233.2.1</p:NewRemoteHost> |
|
<p:NewExternalPort>2345</p:NewExternalPort> |
|
<p:NewProtocol>TCP</p:NewProtocol> |
|
<p:NewInternalPort>2345</p:NewInternalPort> |
|
<p:NewInternalClient>192.168.1.137</p:NewInternalClient> |
|
<p:NewEnabled>1</p:NewEnabled> |
|
<p:NewDescription>dooom</p:NewDescription> |
|
<p:NewLeaseTime>345</p:NewLeaseTime> |
|
</p:PortMappingEntry> |
|
*/ |
|
typedef enum { PortMappingEltNone, |
|
PortMappingEntry, NewRemoteHost, |
|
NewExternalPort, NewProtocol, |
|
NewInternalPort, NewInternalClient, |
|
NewEnabled, NewDescription, |
|
NewLeaseTime } portMappingElt; |
|
|
|
struct PortMapping { |
|
struct PortMapping * l_next; /* list next element */ |
|
UNSIGNED_INTEGER leaseTime; |
|
unsigned short externalPort; |
|
unsigned short internalPort; |
|
char remoteHost[64]; |
|
char internalClient[64]; |
|
char description[64]; |
|
char protocol[4]; |
|
unsigned char enabled; |
|
}; |
|
|
|
struct PortMappingParserData { |
|
struct PortMapping * l_head; /* list head */ |
|
portMappingElt curelt; |
|
}; |
|
|
|
MINIUPNP_LIBSPEC void |
|
ParsePortListing(const char * buffer, int bufsize, |
|
struct PortMappingParserData * pdata); |
|
|
|
MINIUPNP_LIBSPEC void |
|
FreePortListing(struct PortMappingParserData * pdata); |
|
|
|
#ifdef __cplusplus |
|
} |
|
#endif |
|
|
|
#endif
|
|
|