Monero
Loading...
Searching...
No Matches
upnpdescgen.h
Go to the documentation of this file.
1/* $Id: upnpdescgen.h,v 1.22 2011/05/18 22:22:24 nanard Exp $ */
2/* MiniUPnP project
3 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 * (c) 2006-2011 Thomas Bernard
5 * This software is subject to the conditions detailed
6 * in the LICENCE file provided within the distribution */
7
8#ifndef UPNPDESCGEN_H_INCLUDED
9#define UPNPDESCGEN_H_INCLUDED
10
11#include "config.h"
12
13/* for the root description
14 * The child list reference is stored in "data" member using the
15 * INITHELPER macro with index/nchild always in the
16 * same order, whatever the endianness */
17struct XMLElt {
18 const char * eltname; /* begin with '/' if no child */
19 const char * data; /* Value */
20};
21
22/* for service description */
24 const struct action * actionList;
26};
27
28struct action {
29 const char * name;
30 const struct argument * args;
31};
32
33struct argument { /* the name of the arg is obtained from the variable */
34 unsigned char dir; /* MSB : don't append "New" Flag,
35 * 5 Medium bits : magic argument name index
36 * 2 LSB : 1 = in, 2 = out */
37 unsigned char relatedVar; /* index of the related variable */
38};
39
40struct stateVar {
41 const char * name;
42 unsigned char itype; /* MSB: sendEvent flag, 7 LSB: index in upnptypes */
43 unsigned char idefault; /* default value */
44 unsigned char iallowedlist; /* index in allowed values list
45 * or in allowed range list */
46 unsigned char ieventvalue; /* fixed value returned or magical values */
47};
48
49/* little endian
50 * The code has now be tested on big endian architecture */
51#define INITHELPER(i, n) ((char *)(((n)<<16)|(i)))
52
53/* char * genRootDesc(int *);
54 * returns: NULL on error, string allocated on the heap */
55char *
56genRootDesc(int * len);
57
58/* for the two following functions */
59char *
60genWANIPCn(int * len);
61
62char *
63genWANCfg(int * len);
64
65#ifdef ENABLE_L3F_SERVICE
66char *
67genL3F(int * len);
68#endif
69
70#ifdef ENABLE_6FC_SERVICE
71char *
72gen6FC(int * len);
73#endif
74
75#ifdef ENABLE_DP_SERVICE
76char *
77genDP(int * len);
78#endif
79
80#ifdef ENABLE_EVENTS
81char *
82getVarsWANIPCn(int * len);
83
84char *
85getVarsWANCfg(int * len);
86
87#ifdef ENABLE_L3F_SERVICE
88char *
89getVarsL3F(int * len);
90#endif
91#ifdef ENABLE_6FC_SERVICE
92char *
93getVars6FC(int * len);
94#endif
95#ifdef ENABLE_DP_SERVICE
96char *
97getVarsDP(int * len);
98#endif
99#endif /* ENABLE_EVENTS */
100
101#endif
102
Definition upnpdescgen.h:17
const char * eltname
Definition upnpdescgen.h:18
const char * data
Definition upnpdescgen.h:19
Definition upnpdescgen.h:28
const char * name
Definition upnpdescgen.h:29
const struct argument * args
Definition upnpdescgen.h:30
Definition upnpdescgen.h:33
unsigned char relatedVar
Definition upnpdescgen.h:37
unsigned char dir
Definition upnpdescgen.h:34
Definition upnpdescgen.h:23
const struct stateVar * serviceStateTable
Definition upnpdescgen.h:25
const struct action * actionList
Definition upnpdescgen.h:24
Definition upnpdescgen.h:40
unsigned char iallowedlist
Definition upnpdescgen.h:44
unsigned char ieventvalue
Definition upnpdescgen.h:46
unsigned char itype
Definition upnpdescgen.h:42
unsigned char idefault
Definition upnpdescgen.h:43
const char * name
Definition upnpdescgen.h:41
char * genWANCfg(int *len)
Definition upnpdescgen.c:1192
char * genRootDesc(int *len)
Definition upnpdescgen.c:1006
char * genWANIPCn(int *len)
Definition upnpdescgen.c:1184