1 /* $Id: testigddescparse.c,v 1.4 2012/06/28 18:52:12 nanard Exp $ */
2 /* Project : miniupnp
3 * http://miniupnp.free.fr/
4 * Author : Thomas Bernard
5 * Copyright (c) 2008-2012 Thomas Bernard
6 * This software is subject to the conditions detailed in the
7 * LICENCE file provided in this distribution.
8 * */
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <string.h>
12 #include "igd_desc_parse.h"
13 #include "minixml.h"
14 #include "miniupnpc.h"
15
test_igd_desc_parse(char * buffer,int len)16 int test_igd_desc_parse(char * buffer, int len)
17 {
18 struct IGDdatas igd;
19 struct xmlparser parser;
20 struct UPNPUrls urls;
21 memset(&igd, 0, sizeof(struct IGDdatas));
22 memset(&parser, 0, sizeof(struct xmlparser));
23 parser.xmlstart = buffer;
24 parser.xmlsize = len;
25 parser.data = &igd;
26 parser.starteltfunc = IGDstartelt;
27 parser.endeltfunc = IGDendelt;
28 parser.datafunc = IGDdata;
29 parsexml(&parser);
30 printIGD(&igd);
31 GetUPNPUrls(&urls, &igd, "http://fake/desc/url/file.xml", 0);
32 printf("ipcondescURL='%s'\n", urls.ipcondescURL);
33 printf("controlURL='%s'\n", urls.controlURL);
34 printf("controlURL_CIF='%s'\n", urls.controlURL_CIF);
35 FreeUPNPUrls(&urls);
36 return 0;
37 }
38
main(int argc,char ** argv)39 int main(int argc, char * * argv)
40 {
41 FILE * f;
42 char * buffer;
43 int len;
44 int r = 0;
45 if(argc<2) {
46 fprintf(stderr, "Usage: %s file.xml\n", argv[0]);
47 return 1;
48 }
49 f = fopen(argv[1], "r");
50 if(!f) {
51 fprintf(stderr, "Cannot open %s for reading.\n", argv[1]);
52 return 1;
53 }
54 fseek(f, 0, SEEK_END);
55 len = ftell(f);
56 fseek(f, 0, SEEK_SET);
57 buffer = malloc(len);
58 fread(buffer, 1, len, f);
59 fclose(f);
60 r = test_igd_desc_parse(buffer, len);
61 free(buffer);
62 return r;
63 }
64
65