data.h
上传用户:tjescc
上传日期:2021-02-23
资源大小:419k
文件大小:2k
源码类别:

Telnet服务器

开发平台:

Unix_Linux

  1. #ifndef __NESSUS_DATA_H__
  2. #define __NESSUS_DATA_H__
  3. #define DATA_INT    1
  4. #define DATA_STR    2
  5. #define DATA_BLOB   3
  6. #define DATA_PTR    4
  7. #define DATA_DATA   5
  8. struct elem {
  9. char * name;
  10. int size;
  11. int type;
  12. union {
  13.   int v_int;
  14.   char* v_str;
  15.   unsigned char* v_blob;
  16.   void* v_ptr;
  17.   struct data * v_data;
  18.   }v;
  19. struct elem * next;
  20. };
  21. struct data {
  22. struct elem * list;
  23. int walktype;
  24. struct elem * current;
  25. };
  26. struct data * data_init();
  27. int data_add_str (struct data*, char*, char*);
  28. int data_add_blob(struct data*, char*, u_char *, int);
  29. int data_add_int (struct data*, char*, int);
  30. int data_add_ptr (struct data*, char*, void*);
  31. int data_add_data(struct data*, char*, struct data*);
  32. int data_get_int (struct data*, char*, int*);
  33. int data_get_str (struct data*, char*, char**);
  34. int data_get_blob(struct data*, char*, u_char**);
  35. int data_get_ptr (struct data*, char* , void**);
  36. int data_get_data(struct data*, char*, struct data**);
  37. int data_set_int(struct data*, char*, int);
  38. int data_set_str(struct data*, char*, char*);
  39. int data_set_blob(struct data*, char*, u_char*, int);
  40. int data_set_ptr(struct data*, char*, void*);
  41. int data_set_data(struct data*, char*, struct data*);
  42. int data_addset_int(struct data*, char*, int);
  43. int data_addset_str(struct data*, char*, char*);
  44. int data_addset_blob(struct data*, char*, u_char*, int);
  45. int data_addset_ptr(struct data*, char*, void*);
  46. int data_addset_data(struct data*, char*, struct data*);
  47. int data_get_size(struct data*, char*, int*);
  48. int data_get_type(struct data*, char*, int*);
  49. int data_free(struct data*);
  50. int data_free_all(struct data*);
  51. int data_walk_init(struct data*);
  52. int data_walk_next_str(struct data*, char **, char**);
  53. int data_walk_next_int(struct data*, char**, int *);
  54. struct data * data_copy(struct data *);
  55. int data_dump(struct data*);
  56. #endif