#ifndef _PMLIST_H_
#define _PMLIST_H_
#define COMMAND_LEN 500
#define DEST_LEN 100
typedef struct ExpirationEvent {
int eventId;
char DevUDN[NAME_SIZE];
char ServiceID[NAME_SIZE];
struct portMap *mapping;
} expiration_event;
struct portMap
{
int m_PortMappingEnabled;
long int m_PortMappingLeaseDuration;
char m_RemoteHost[16];
char m_ExternalPort[6];
char m_InternalPort[6];
char m_PortMappingProtocol[4];
char m_InternalClient[16];
char m_PortMappingDescription[50];
int expirationEventId;
long int expirationTime;
struct portMap* next;
struct portMap* prev;
} *pmlist_Head, *pmlist_Tail, *pmlist_Current;
//struct portMap* pmlist_NewNode(void);
struct portMap* pmlist_NewNode(int enabled, long int duration, char *remoteHost,
char *externalPort, char *internalPort,
char *protocol, char *internalClient, char *desc);
struct portMap* pmlist_Find(char *externalPort, char *proto, char *internalClient);
struct portMap* pmlist_FindByIndex(int index);
struct portMap* pmlist_FindSpecific(char *externalPort, char *protocol);
int pmlist_IsEmtpy(void);
int pmlist_Size(void);
int pmlist_FreeList(void);
int pmlist_PushBack(struct portMap* item);
int pmlist_Delete(struct portMap* item);
int pmlist_AddPortMapping (int enabled, char *protocol,
char *externalPort, char *internalClient, char *internalPort);
int pmlist_DeletePortMapping(int enabled, char *protocol,
char *externalPort, char *internalClient, char *internalPort);
#endif // _PMLIST_H_
syntax highlighted by Code2HTML, v. 0.9.1