88 lines
1.8 KiB
C
Executable File
88 lines
1.8 KiB
C
Executable File
/* $Id: testminixml.c,v 1.9 2013/05/14 19:50:49 nanard Exp $
|
|
* MiniUPnP project
|
|
* Website : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
|
|
* Author : Thomas Bernard.
|
|
* Copyright (c) 2005-2013 Thomas Bernard
|
|
*
|
|
* testminixml.c
|
|
* test program for the "minixml" functions.
|
|
*/
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include "minixml.h"
|
|
#include "igd_desc_parse.h"
|
|
|
|
/* ---------------------------------------------------------------------- */
|
|
void printeltname1(void * d, const char * name, int l)
|
|
{
|
|
int i;
|
|
(void)d;
|
|
printf("element ");
|
|
for(i=0;i<l;i++)
|
|
putchar(name[i]);
|
|
}
|
|
void printeltname2(void * d, const char * name, int l)
|
|
{
|
|
int i;
|
|
(void)d;
|
|
putchar('/');
|
|
for(i=0;i<l;i++)
|
|
putchar(name[i]);
|
|
putchar('\n');
|
|
}
|
|
void printdata(void *d, const char * data, int l)
|
|
{
|
|
int i;
|
|
(void)d;
|
|
printf("data : ");
|
|
for(i=0;i<l;i++)
|
|
putchar(data[i]);
|
|
putchar('\n');
|
|
}
|
|
|
|
void burptest(const char * buffer, int bufsize)
|
|
{
|
|
struct IGDdatas data;
|
|
struct xmlparser parser;
|
|
/*objet IGDdatas */
|
|
memset(&data, 0, sizeof(struct IGDdatas));
|
|
/* objet xmlparser */
|
|
parser.xmlstart = buffer;
|
|
parser.xmlsize = bufsize;
|
|
parser.data = &data;
|
|
/*parser.starteltfunc = printeltname1;
|
|
parser.endeltfunc = printeltname2;
|
|
parser.datafunc = printdata; */
|
|
parser.starteltfunc = IGDstartelt;
|
|
parser.endeltfunc = IGDendelt;
|
|
parser.datafunc = IGDdata;
|
|
parsexml(&parser);
|
|
printIGD(&data);
|
|
}
|
|
|
|
/* ----- main ---- */
|
|
#define XML_MAX_SIZE (8192)
|
|
int main(int argc, char * * argv)
|
|
{
|
|
FILE * f;
|
|
char buffer[XML_MAX_SIZE];
|
|
int bufsize;
|
|
if(argc<2)
|
|
{
|
|
printf("usage:\t%s file.xml\n", argv[0]);
|
|
return 1;
|
|
}
|
|
f = fopen(argv[1], "r");
|
|
if(!f)
|
|
{
|
|
printf("cannot open file %s\n", argv[1]);
|
|
return 1;
|
|
}
|
|
bufsize = (int)fread(buffer, 1, XML_MAX_SIZE, f);
|
|
fclose(f);
|
|
burptest(buffer, bufsize);
|
|
return 0;
|
|
}
|
|
|