radius_config.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. /******************************* (C) LiteMesh **********************************
  2. * @module template
  3. * @file template.h
  4. * @version 1.0.0
  5. * @date XX.XX.XXXX
  6. * $brief template
  7. *******************************************************************************
  8. * @history Version Author Comment
  9. * XX.XX.XXXX 1.0.0 Telenkov D.A. First release.
  10. *******************************************************************************
  11. */
  12. /* Define to prevent recursive ----------------------------------------------*/
  13. #ifndef __RADIUS_CONFIG_H
  14. #define __RADIUS_CONFIG_H
  15. #include <stdint.h>
  16. #include <string.h>
  17. #define RC_LOG
  18. #define STDC_HEADERS
  19. #define HAVE_RAND // Рандом генератор
  20. //#define HAVE_GETENTROPY // ?
  21. // some unix defines
  22. #define LOG_CRIT 0
  23. #define LOG_ERR 0
  24. #define LOG_WARNING 0
  25. //typedef unsigned int size_t;
  26. // some unix structs
  27. /*
  28. * Desired design of maximum size and alignment (see RFC2553)
  29. */
  30. #define _K_SS_MAXSIZE 128 /* Implementation specific max size */
  31. #define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *))
  32. /* Implementation specific desired alignment */
  33. typedef unsigned short __kernel_sa_family_t;
  34. struct __kernel_sockaddr_storage {
  35. __kernel_sa_family_t ss_family; /* address family */
  36. /* Following field(s) are implementation specific */
  37. char data[_K_SS_MAXSIZE - sizeof(unsigned short)];
  38. /* space to achieve desired size, */
  39. /* _SS_MAXSIZE value minus size of ss_family */
  40. } ; /* force desired alignment */
  41. // -----------------------------------------------------------------------------
  42. typedef __kernel_sa_family_t sa_family_t;
  43. // -----------------------------------------------------------------------------
  44. /*
  45. struct sockaddr {
  46. char sa_len; // total length
  47. char sa_family; // address family
  48. char sa_data[14]; // actually longer; address value
  49. };
  50. */
  51. #define _SS_MAXSIZE 128 /* Implementation specific max size */
  52. #define _SS_ALIGNSIZE (sizeof (int64_t))
  53. #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(sa_family_t))
  54. #define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof(sa_family_t)+ \
  55. _SS_PAD1SIZE + _SS_ALIGNSIZE))
  56. struct sockaddr_storage {
  57. sa_family_t ss_family; /* Address family. */
  58. /*
  59. * Following fields are implementation-defined.
  60. */
  61. char _ss_pad1[_SS_PAD1SIZE];
  62. /* 6-byte pad; this is to make implementation-defined
  63. pad up to alignment field that follows explicit in
  64. the data structure. */
  65. int64_t _ss_align; /* Field to force desired structure
  66. storage alignment. */
  67. char _ss_pad2[_SS_PAD2SIZE];
  68. /* 112-byte pad to achieve desired size,
  69. _SS_MAXSIZE value minus size of ss_family
  70. __ss_pad1, __ss_align fields is 112. */
  71. };
  72. struct addrinfo {
  73. int ai_flags; // AI_PASSIVE, AI_CANONNAME, etc.
  74. int ai_family; // AF_INET, AF_INET6, AF_UNSPEC
  75. int ai_socktype; // SOCK_STREAM, SOCK_DGRAM
  76. int ai_protocol; // use 0 for "any"
  77. size_t ai_addrlen; // size of ai_addr in bytes
  78. struct sockaddr *ai_addr; // struct sockaddr_in or _in6
  79. char *ai_canonname; // full canonical hostname
  80. struct addrinfo *ai_next; // linked list, next node
  81. };
  82. #endif /* #ifndef __RADIUS_CONFIG_H */
  83. /****************************** (C) LiteMesh ***************** end of file ****/