#include "spf_sys_config.h"
#include "spf_internal.h"
#include "spf.h"
#include "spf_response.h"
#include "spf_record.h"
Include dependency graph for spf_compile.c:
Go to the source code of this file.
Data Structures | |
struct | SPF_mechtype_struct |
Defines | |
#define | SPF_RECORD_BUFSIZ 4096 |
#define | ALIGN_DECL(decl) union { double d; long l; decl } __attribute__((aligned(_ALIGN_SZ))) u |
#define | ALIGNED_DECL(var) u.var |
#define | spf_num_mechanisms sizeof(spf_mechtypes) / sizeof(spf_mechtypes[0]) |
#define | SPF_CHECK_IN_MODIFIER() |
#define | SPF_ADD_LEN_TO(_val, _len, _max) |
#define | SPF_INIT_STRING_LITERAL(_avail) |
#define | SPF_ENSURE_STRING_AVAIL(_len) |
#define | SPF_FINI_STRING_LITERAL() |
#define | STREQ_SIZEOF(a, b) (strncasecmp((a), (b), sizeof( (b) ) - 1) == 0) |
#define | STREQ_SIZEOF_N(a, b, n) (((n) == sizeof(b) - 1) && (strncasecmp((a),(b),(n)) == 0)) |
Typedefs | |
typedef enum SPF_cidr_enum | SPF_cidr_t |
typedef enum SPF_domspec_enum | SPF_domspec_t |
typedef SPF_mechtype_struct | SPF_mechtype_t |
Enumerations | |
enum | SPF_cidr_enum { CIDR_NONE, CIDR_OPTIONAL, CIDR_ONLY } |
enum | SPF_domspec_enum { DOMSPEC_NONE, DOMSPEC_OPTIONAL, DOMSPEC_REQUIRED } |
Functions | |
__attribute__ ((warn_unused_result)) | |
SPF_errcode_t | SPF_record_compile (SPF_server_t *spf_server, SPF_response_t *spf_response, SPF_record_t **spf_recordp, const char *record) |
SPF_errcode_t | SPF_record_compile_macro (SPF_server_t *spf_server, SPF_response_t *spf_response, SPF_macro_t **spf_macrop, const char *record) |
|
Definition at line 64 of file spf_compile.c. Referenced by SPF_record_compile_macro(). |
|
Definition at line 65 of file spf_compile.c. Referenced by SPF_record_compile_macro(). |
|
Value: do { \ if ( (_val) + _align_sz(_len) > (_max) ) { \ return SPF_response_add_error_ptr(spf_response, \ big_err, NULL, src, \ "SPF domainspec too long " \ "(%d chars, %d max)", \ (_val) + (_len), _max); \ } \ (_val) += _align_sz(_len); \ } while(0) Definition at line 441 of file spf_compile.c. |
|
Value: if ( !is_mod ) \ return SPF_response_add_error_ptr(spf_response, \ SPF_E_INVALID_VAR, NULL, p, \ "'%c' macro is only valid in modifiers", c); |
|
Value: do { \ if (ds_len + _len > ds_avail) \ return SPF_response_add_error_ptr(spf_response, \ SPF_E_BIG_STRING, NULL, src, \ "String literal fragment too long " \ "(%d chars, %d max)", \ ds_len, ds_avail); \ } while(0) Definition at line 462 of file spf_compile.c. |
|
Value: do { \ if ( ds_len > 0 ) { \ if ( ds_len > SPF_MAX_STR_LEN ) { \ return SPF_response_add_error_ptr(spf_response, \ SPF_E_BIG_STRING, NULL, src, \ "String literal too long " \ "(%d chars, %d max)", \ ds_len, SPF_MAX_STR_LEN); \ } \ data->ds.len = ds_len; \ len = sizeof( *data ) + ds_len; \ SPF_ADD_LEN_TO(*data_used, len, data_avail); \ data = SPF_data_next( data ); \ ds_len = 0; \ } \ } while(0) Definition at line 471 of file spf_compile.c. |
|
Value: do { \ data->ds.parm_type = PARM_STRING; \ data->ds.len = 0; \ /* Magic numbers for x/Nc in gdb. */ \ data->ds.__unused0 = 0xba; data->ds.__unused1 = 0xbe; \ dst = SPF_data_str( data ); \ ds_avail = _avail; \ ds_len = 0; \ } while(0) Definition at line 452 of file spf_compile.c. |
|
Definition at line 91 of file spf_compile.c. |
|
This is greater than any possible total mechanism or modifier. SPF_MAX_MOD_LEN + SPF_MAX_STR_LEN SPF_MAX_MECH_LEN + SPF_MAX_STR_LEN Definition at line 62 of file spf_compile.c. |
|
Referenced by SPF_record_compile(). |
|
Referenced by SPF_record_compile(). |
|
|
|
|
|
Referenced by SPF_record_compile(). |
|
Definition at line 47 of file spf_compile.c. |
|
Definition at line 52 of file spf_compile.c. |
|
Definition at line 105 of file spf_compile.c. |
|
Here is the call graph for this function:
|
Definition at line 1499 of file spf_compile.c. References ALIGN_DECL, ALIGNED_DECL, SPF_macro_struct::macro_len, SPF_data_t, SPF_E_BIG_MOD, SPF_errcode_t, SPF_macro_t, SPF_MAX_MOD_LEN, SPF_response_t, SPF_server_t, and TRUE. Referenced by SPF_request_get_exp(), and SPF_server_set_explanation(). |