/******************************* (C) LiteMesh ********************************** * @module template * @file template.h * @version 1.0.0 * @date XX.XX.XXXX * $brief template ******************************************************************************* * @history Version Author Comment * XX.XX.XXXX 1.0.0 Telenkov D.A. First release. ******************************************************************************* */ /* Define to prevent recursive ----------------------------------------------*/ #ifndef __RADIUS_CONFIG_H #define __RADIUS_CONFIG_H #include #include #include "sockets.h" //#define RC_LOG #define STDC_HEADERS #define HAVE_RAND // Рандом генератор //#define HAVE_GETENTROPY // ? // some unix defines #define LOG_CRIT 0 #define LOG_ERR 0 #define LOG_WARNING 0 //typedef unsigned int size_t; // some unix structs /* * Desired design of maximum size and alignment (see RFC2553) */ #define _K_SS_MAXSIZE 128 /* Implementation specific max size */ #define _K_SS_ALIGNSIZE (__alignof__ (struct sockaddr *)) /* Implementation specific desired alignment */ typedef unsigned short __kernel_sa_family_t; struct __kernel_sockaddr_storage { __kernel_sa_family_t ss_family; /* address family */ /* Following field(s) are implementation specific */ char data[_K_SS_MAXSIZE - sizeof(unsigned short)]; /* space to achieve desired size, */ /* _SS_MAXSIZE value minus size of ss_family */ } ; /* force desired alignment */ // ----------------------------------------------------------------------------- typedef __kernel_sa_family_t sa_family_t2; // ----------------------------------------------------------------------------- #define _SS_MAXSIZE 128 /* Implementation specific max size */ #define _SS_ALIGNSIZE (sizeof (int64_t)) #define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof(sa_family_t2)) #define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof(sa_family_t2)+ \ _SS_PAD1SIZE + _SS_ALIGNSIZE)) #if 0 struct sockaddr_storage { sa_family_t2 ss_family; /* Address family. */ /* * Following fields are implementation-defined. */ char _ss_pad1[_SS_PAD1SIZE]; /* 6-byte pad; this is to make implementation-defined pad up to alignment field that follows explicit in the data structure. */ int64_t _ss_align; /* Field to force desired structure storage alignment. */ char _ss_pad2[_SS_PAD2SIZE]; /* 112-byte pad to achieve desired size, _SS_MAXSIZE value minus size of ss_family __ss_pad1, __ss_align fields is 112. */ }; #endif #if 0 struct addrinfo { int ai_flags; // AI_PASSIVE, AI_CANONNAME, etc. int ai_family; // AF_INET, AF_INET6, AF_UNSPEC int ai_socktype; // SOCK_STREAM, SOCK_DGRAM int ai_protocol; // use 0 for "any" size_t ai_addrlen; // size of ai_addr in bytes struct sockaddr *ai_addr; // struct sockaddr_in or _in6 char *ai_canonname; // full canonical hostname struct addrinfo *ai_next; // linked list, next node }; #endif #endif /* #ifndef __RADIUS_CONFIG_H */ /****************************** (C) LiteMesh ***************** end of file ****/