1/* $Id: upnpreplyparse.h,v 1.19 2014/10/27 16:33:19 nanard Exp $ */
2/* MiniUPnP project
3 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 * (c) 2006-2013 Thomas Bernard
5 * This software is subject to the conditions detailed
6 * in the LICENCE file provided within the distribution */
7
8#ifndef UPNPREPLYPARSE_H_INCLUDED
9#define UPNPREPLYPARSE_H_INCLUDED
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15struct NameValue {
16	struct NameValue * l_next;
17	char name[64];
18	char value[128];
19};
20
21struct NameValueParserData {
22	struct NameValue * l_head;
23	char curelt[64];
24	char * portListing;
25	int portListingLength;
26	int topelt;
27	const char * cdata;
28	int cdatalen;
29};
30
31/* ParseNameValue() */
32void
33ParseNameValue(const char * buffer, int bufsize,
34               struct NameValueParserData * data);
35
36/* ClearNameValueList() */
37void
38ClearNameValueList(struct NameValueParserData * pdata);
39
40/* GetValueFromNameValueList() */
41char *
42GetValueFromNameValueList(struct NameValueParserData * pdata,
43                          const char * Name);
44
45#if 0
46/* GetValueFromNameValueListIgnoreNS() */
47char *
48GetValueFromNameValueListIgnoreNS(struct NameValueParserData * pdata,
49                                  const char * Name);
50#endif
51
52/* DisplayNameValueList() */
53#ifdef DEBUG
54void
55DisplayNameValueList(char * buffer, int bufsize);
56#endif
57
58#ifdef __cplusplus
59}
60#endif
61
62#endif
63
64