TOR: fix compilation
[tomato.git] / release / src / router / miniupnpd / testupnpdescgen.c
blobe8b68ba4c8d46cdd7826c1e264569877f78930a5
1 /* $Id: testupnpdescgen.c,v 1.33 2016/02/16 12:15:02 nanard Exp $ */
2 /* MiniUPnP project
3 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4 * (c) 2006-2016 Thomas Bernard
5 * This software is subject to the conditions detailed
6 * in the LICENCE file provided within the distribution */
8 #include <stdlib.h>
9 #include <stdio.h>
10 #include <string.h>
11 /* for mkdir */
12 #include <sys/stat.h>
13 #include <sys/types.h>
14 #include <errno.h>
16 #include "macros.h"
17 #include "config.h"
18 #include "upnpdescgen.h"
19 #include "upnpdescstrings.h"
20 #include "getifaddr.h"
22 char uuidvalue_igd[] = "uuid:12345678-0000-0000-0000-000000abcd01";
23 char uuidvalue_wan[] = "uuid:12345678-0000-0000-0000-000000abcd02";
24 char uuidvalue_wcd[] = "uuid:12345678-0000-0000-0000-000000abcd03";
25 char serialnumber[] = "12345678";
26 char modelnumber[] = "1";
27 char presentationurl[] = "http://192.168.0.1:8080/";
28 /*char presentationurl[] = "";*/
29 #ifdef ENABLE_MANUFACTURER_INFO_CONFIGURATION
30 char friendly_name[] = OS_NAME " router";
31 char manufacturer_name[] = ROOTDEV_MANUFACTURER;
32 char manufacturer_url[] = ROOTDEV_MANUFACTURERURL;
33 char model_name[] = ROOTDEV_MODELNAME;
34 char model_description[] = ROOTDEV_MODELDESCRIPTION;
35 char model_url[] = ROOTDEV_MODELURL;
36 #endif
37 unsigned int upnp_configid = 666;
39 char * use_ext_ip_addr = NULL;
40 const char * ext_if_name = "eth0";
42 int runtime_flags = 0;
44 int getifaddr(const char * ifname, char * buf, int len, struct in_addr * addr, struct in_addr * mask)
46 UNUSED(ifname);
47 UNUSED(addr);
48 UNUSED(mask);
49 strncpy(buf, "1.2.3.4", len);
50 return 0;
53 int upnp_get_portmapping_number_of_entries(void)
55 return 42;
58 int get_wan_connection_status(const char * ifname)
60 UNUSED(ifname);
61 return 2;
64 /* To be improved */
65 int
66 xml_pretty_print(const char * s, int len, FILE * f)
68 int n = 0, i;
69 int elt_close = 0;
70 int c, indent = 0;
72 if(!s)
73 return n;
74 while(len > 0)
76 c = *(s++); len--;
77 switch(c)
79 case '<':
80 if(len>0 && *s == '/')
81 elt_close++;
82 else if(len>0 && *s == '?')
83 elt_close = 1;
84 else
85 elt_close = 0;
86 if(elt_close!=1)
88 if(elt_close > 1)
89 indent--;
90 fputc('\n', f); n++;
91 for(i=indent; i>0; i--)
92 fputc(' ', f);
93 n += indent;
95 fputc(c, f); n++;
96 break;
97 case '>':
98 fputc(c, f); n++;
99 if(elt_close==1)
101 /*fputc('\n', f); n++; */
102 /* elt_close = 0; */
103 if(indent > 0)
104 indent--;
106 else if(elt_close == 0)
107 indent++;
108 break;
109 case '\n':
110 /* remove existing LF */
111 break;
112 default:
113 fputc(c, f); n++;
116 return n;
119 /* stupid test */
120 const char * str1 = "Prefix123String";
121 const char * str2 = "123String";
123 void stupid_test(void)
125 printf("str1:'%s' str2:'%s'\n", str1, str2);
126 printf("str1:%p str2:%p str2-str1:%ld\n", str1, str2, (long)(str2-str1));
129 /* main */
132 main(int argc, char * * argv)
134 char * rootDesc;
135 int rootDescLen;
136 char * s;
137 int l;
138 FILE * f;
139 UNUSED(argc);
140 UNUSED(argv);
142 if(mkdir("testdescs", 0777) < 0) {
143 if(errno != EEXIST) {
144 perror("mkdir");
147 printf("Root Description :\n");
148 rootDesc = genRootDesc(&rootDescLen);
149 xml_pretty_print(rootDesc, rootDescLen, stdout);
150 f = fopen("testdescs/rootdesc.xml", "w");
151 if(f) {
152 xml_pretty_print(rootDesc, rootDescLen, f);
153 fclose(f);
155 free(rootDesc);
156 printf("\n-------------\n");
157 printf("WANIPConnection Description :\n");
158 s = genWANIPCn(&l);
159 xml_pretty_print(s, l, stdout);
160 f = fopen("testdescs/wanipc_scpd.xml", "w");
161 if(f) {
162 xml_pretty_print(s, l, f);
163 fclose(f);
165 free(s);
166 printf("\n-------------\n");
167 printf("WANConfig Description :\n");
168 s = genWANCfg(&l);
169 xml_pretty_print(s, l, stdout);
170 f = fopen("testdescs/wanconfig_scpd.xml", "w");
171 if(f) {
172 xml_pretty_print(s, l, f);
173 fclose(f);
175 free(s);
176 printf("\n-------------\n");
177 #ifdef ENABLE_L3F_SERVICE
178 printf("Layer3Forwarding service :\n");
179 s = genL3F(&l);
180 xml_pretty_print(s, l, stdout);
181 f = fopen("testdescs/l3f_scpd.xml", "w");
182 if(f) {
183 xml_pretty_print(s, l, f);
184 fclose(f);
186 free(s);
187 printf("\n-------------\n");
188 #endif
189 #ifdef ENABLE_6FC_SERVICE
190 printf("WANIPv6FirewallControl service :\n");
191 s = gen6FC(&l);
192 xml_pretty_print(s, l, stdout);
193 f = fopen("testdescs/wanipv6fc_scpd.xml", "w");
194 if(f) {
195 xml_pretty_print(s, l, f);
196 fclose(f);
198 free(s);
199 printf("\n-------------\n");
200 #endif
201 #ifdef ENABLE_DP_SERVICE
202 printf("DeviceProtection service :\n");
203 s = genDP(&l);
204 xml_pretty_print(s, l, stdout);
205 f = fopen("testdescs/dp_scpd.xml", "w");
206 if(f) {
207 xml_pretty_print(s, l, f);
208 fclose(f);
210 free(s);
211 printf("\n-------------\n");
212 #endif
213 #ifdef ENABLE_EVENTS
214 s = getVarsWANIPCn(&l);
215 xml_pretty_print(s, l, stdout);
216 free(s);
217 printf("\n-------------\n");
218 s = getVarsWANCfg(&l);
219 xml_pretty_print(s, l, stdout);
220 free(s);
221 printf("\n-------------\n");
222 #ifdef ENABLE_L3F_SERVICE
223 s = getVarsL3F(&l);
224 xml_pretty_print(s, l, stdout);
225 free(s);
226 printf("\n-------------\n");
227 #ifdef ENABLE_6FC_SERVICE
228 s = getVars6FC(&l);
229 xml_pretty_print(s, l, stdout);
230 free(s);
231 printf("\n-------------\n");
232 #endif
233 #ifdef ENABLE_DP_SERVICE
234 s = getVarsDP(&l);
235 xml_pretty_print(s, l, stdout);
236 free(s);
237 printf("\n-------------\n");
238 #endif
239 #endif
240 #endif
242 stupid_test();
244 return 0;