19#ifndef INC_SPF_INTERNAL
20#define INC_SPF_INTERNAL
28#define NULL ((void *)0)
31#define array_elem(x) ((long int)(sizeof( x ) / sizeof( *x )))
38#ifndef SPF_MAX_DNS_MECH
55#define SPF_MAX_DNS_MECH 10
57#ifndef SPF_MAX_DNS_PTR
62#define SPF_MAX_DNS_PTR 10
69#define SPF_MAX_DNS_MX 10
74static inline size_t _align_sz(
size_t s)
76static inline char * _align_ptr(
char *s)
79static inline size_t _align_sz(
size_t s) {
return s; }
80static inline char * _align_ptr(
char *s) {
return s; }
87static inline size_t SPF_mech_data_len(
SPF_mech_t * mech )
89 ?
sizeof(
struct in_addr )
91 ? sizeof( struct in6_addr )
93static inline
SPF_mech_t *SPF_mech_next( SPF_mech_t * mech )
95 (
char *)mech +
sizeof(
SPF_mech_t) + SPF_mech_data_len( mech )
100 {
return (
SPF_data_t *)( (
char *)SPF_mech_data(mech) +
101 SPF_mech_data_len( mech ));}
102static inline struct in_addr *SPF_mech_ip4_data(
SPF_mech_t *mech )
103 {
return (
struct in_addr *)( (
char *)mech +
sizeof(
SPF_mech_t)); }
104static inline struct in6_addr *SPF_mech_ip6_data(
SPF_mech_t *mech )
105 {
return (
struct in6_addr *)( (
char *)mech +
sizeof(
SPF_mech_t)); }
107static inline size_t SPF_data_len(
SPF_data_t *data )
112 (
char *)data + SPF_data_len(data)
114static inline char *SPF_data_str(
SPF_data_t *data )
117static inline size_t SPF_mod_len(
SPF_mod_t *mod )
121 (
char *)mod + SPF_mod_len(mod)
123static inline char *SPF_mod_name(
SPF_mod_t *mod )
124 {
return (
char *)mod +
sizeof(
SPF_mod_t); }
132static inline size_t SPF_macro_data_len( SPF_macro_t * mac )
133 {
return mac->macro_len; }
134static inline SPF_data_t *SPF_macro_data( SPF_macro_t * mac )
135 {
return (
SPF_data_t *)( (
char *)mac +
sizeof(SPF_macro_t)); }
138char *
SPF_sanitize( SPF_server_t *spf_server,
char *str );
158#define SPF_WRAP_FUNCTION(name, proto, args) \
159 SPF_errcode_t name proto { \
160 SPF_errcode_t err = name ## _real args; \
161 SPF_debug(#name " returns %d\n", err); \
164 SPF_errcode_t name ## _real proto
char * SPF_sanitize(SPF_server_t *spf_server, char *str)
void SPF_print_sizeof(void)
SPF_errcode_t SPF_recalloc(char **bufp, size_t *buflenp, size_t buflen) __attribute__((warn_unused_result))