1/* $Id: igd_desc_parse.h,v 1.12 2014/11/17 17:19:13 nanard Exp $ */
2/* Project : miniupnp
3 * http://miniupnp.free.fr/
4 * Author : Thomas Bernard
5 * Copyright (c) 2005-2014 Thomas Bernard
6 * This software is subject to the conditions detailed in the
7 * LICENCE file provided in this distribution.
8 * */
9#ifndef IGD_DESC_PARSE_H_INCLUDED
10#define IGD_DESC_PARSE_H_INCLUDED
11
12/* Structure to store the result of the parsing of UPnP
13 * descriptions of Internet Gateway Devices */
14#define MINIUPNPC_URL_MAXSIZE (128)
15struct IGDdatas_service {
16	char controlurl[MINIUPNPC_URL_MAXSIZE];
17	char eventsuburl[MINIUPNPC_URL_MAXSIZE];
18	char scpdurl[MINIUPNPC_URL_MAXSIZE];
19	char servicetype[MINIUPNPC_URL_MAXSIZE];
20	/*char devicetype[MINIUPNPC_URL_MAXSIZE];*/
21};
22
23struct IGDdatas {
24	char cureltname[MINIUPNPC_URL_MAXSIZE];
25	char urlbase[MINIUPNPC_URL_MAXSIZE];
26	char presentationurl[MINIUPNPC_URL_MAXSIZE];
27	int level;
28	/*int state;*/
29	/* "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1" */
30	struct IGDdatas_service CIF;
31	/* "urn:schemas-upnp-org:service:WANIPConnection:1"
32	 * "urn:schemas-upnp-org:service:WANPPPConnection:1" */
33	struct IGDdatas_service first;
34	/* if both WANIPConnection and WANPPPConnection are present */
35	struct IGDdatas_service second;
36	/* "urn:schemas-upnp-org:service:WANIPv6FirewallControl:1" */
37	struct IGDdatas_service IPv6FC;
38	/* tmp */
39	struct IGDdatas_service tmp;
40};
41
42void IGDstartelt(void *, const char *, int);
43void IGDendelt(void *, const char *, int);
44void IGDdata(void *, const char *, int);
45#ifdef DEBUG
46void printIGD(struct IGDdatas *);
47#endif /* DEBUG */
48
49#endif /* IGD_DESC_PARSE_H_INCLUDED */
50