summaryrefslogtreecommitdiff
path: root/ext/miniupnpc/testminixml.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/miniupnpc/testminixml.c')
-rw-r--r--ext/miniupnpc/testminixml.c89
1 files changed, 89 insertions, 0 deletions
diff --git a/ext/miniupnpc/testminixml.c b/ext/miniupnpc/testminixml.c
new file mode 100644
index 00000000..57c4a85e
--- /dev/null
+++ b/ext/miniupnpc/testminixml.c
@@ -0,0 +1,89 @@
+/* $Id: testminixml.c,v 1.10 2014/11/17 17:19:13 nanard Exp $
+ * MiniUPnP project
+ * Website : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
+ * Author : Thomas Bernard.
+ * Copyright (c) 2005-2014 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);
+#ifdef DEBUG
+ printIGD(&data);
+#endif /* DEBUG */
+}
+
+/* ----- 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;
+}
+