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