testminixml.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /* $Id: testminixml.c,v 1.10 2014/11/17 17:19:13 nanard Exp $
  2. * MiniUPnP project
  3. * Website : http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
  4. * Author : Thomas Bernard.
  5. * Copyright (c) 2005-2014 Thomas Bernard
  6. *
  7. * testminixml.c
  8. * test program for the "minixml" functions.
  9. */
  10. #include <stdlib.h>
  11. #include <stdio.h>
  12. #include <string.h>
  13. #include "minixml.h"
  14. #include "igd_desc_parse.h"
  15. /* ---------------------------------------------------------------------- */
  16. void printeltname1(void * d, const char * name, int l)
  17. {
  18. int i;
  19. (void)d;
  20. printf("element ");
  21. for(i=0;i<l;i++)
  22. putchar(name[i]);
  23. }
  24. void printeltname2(void * d, const char * name, int l)
  25. {
  26. int i;
  27. (void)d;
  28. putchar('/');
  29. for(i=0;i<l;i++)
  30. putchar(name[i]);
  31. putchar('\n');
  32. }
  33. void printdata(void *d, const char * data, int l)
  34. {
  35. int i;
  36. (void)d;
  37. printf("data : ");
  38. for(i=0;i<l;i++)
  39. putchar(data[i]);
  40. putchar('\n');
  41. }
  42. void burptest(const char * buffer, int bufsize)
  43. {
  44. struct IGDdatas data;
  45. struct xmlparser parser;
  46. /*objet IGDdatas */
  47. memset(&data, 0, sizeof(struct IGDdatas));
  48. /* objet xmlparser */
  49. parser.xmlstart = buffer;
  50. parser.xmlsize = bufsize;
  51. parser.data = &data;
  52. /*parser.starteltfunc = printeltname1;
  53. parser.endeltfunc = printeltname2;
  54. parser.datafunc = printdata; */
  55. parser.starteltfunc = IGDstartelt;
  56. parser.endeltfunc = IGDendelt;
  57. parser.datafunc = IGDdata;
  58. parsexml(&parser);
  59. #ifdef DEBUG
  60. printIGD(&data);
  61. #endif /* DEBUG */
  62. }
  63. /* ----- main ---- */
  64. #define XML_MAX_SIZE (8192)
  65. int main(int argc, char * * argv)
  66. {
  67. FILE * f;
  68. char buffer[XML_MAX_SIZE];
  69. int bufsize;
  70. if(argc<2)
  71. {
  72. printf("usage:\t%s file.xml\n", argv[0]);
  73. return 1;
  74. }
  75. f = fopen(argv[1], "r");
  76. if(!f)
  77. {
  78. printf("cannot open file %s\n", argv[1]);
  79. return 1;
  80. }
  81. bufsize = (int)fread(buffer, 1, XML_MAX_SIZE, f);
  82. fclose(f);
  83. burptest(buffer, bufsize);
  84. return 0;
  85. }