00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include "spf_sys_config.h"
00017
00018
00019
00020 #ifdef STDC_HEADERS
00021 # include <stdio.h>
00022 # include <stdlib.h>
00023 #endif
00024
00025 #ifdef HAVE_INTTYPES_H
00026 #include <inttypes.h>
00027 #endif
00028
00029 #include "spf.h"
00030
00031
00032 const char *
00033 SPF_strerror( SPF_errcode_t spf_c_err )
00034 {
00035 switch ( spf_c_err )
00036 {
00037 case SPF_E_SUCCESS:
00038 return "No errors";
00039 break;
00040
00041 case SPF_E_NO_MEMORY:
00042 return "Out of memory";
00043 break;
00044
00045 case SPF_E_NOT_SPF:
00046 return "Could not find a valid SPF record";
00047 break;
00048
00049 case SPF_E_SYNTAX:
00050 return "Syntax error";
00051 break;
00052
00053 case SPF_E_MOD_W_PREF:
00054 return "Modifiers can not have prefixes";
00055 break;
00056
00057 case SPF_E_INVALID_CHAR:
00058 return "Invalid character found";
00059 break;
00060
00061 case SPF_E_UNKNOWN_MECH:
00062 return "Unknown mechanism found";
00063 break;
00064
00065 case SPF_E_INVALID_OPT:
00066 return "Invalid option found";
00067 break;
00068
00069 case SPF_E_INVALID_CIDR:
00070 return "Invalid CIDR length";
00071 break;
00072
00073 case SPF_E_MISSING_OPT:
00074 return "Required option is missing";
00075 break;
00076
00077 case SPF_E_INTERNAL_ERROR:
00078 return "Internal programming error";
00079 break;
00080
00081 case SPF_E_INVALID_ESC:
00082 return "Invalid %-escape character";
00083 break;
00084
00085 case SPF_E_INVALID_VAR:
00086 return "Invalid macro variable";
00087 break;
00088
00089 case SPF_E_BIG_SUBDOM:
00090 return "Subdomain truncation depth too large";
00091 break;
00092
00093 case SPF_E_INVALID_DELIM:
00094 return "Invalid delimiter character";
00095 break;
00096
00097 case SPF_E_BIG_STRING:
00098 return "Option string too long";
00099 break;
00100
00101 case SPF_E_BIG_MECH:
00102 return "Too many mechanisms";
00103 break;
00104
00105 case SPF_E_BIG_MOD:
00106 return "Too many modifiers";
00107 break;
00108
00109 case SPF_E_BIG_DNS:
00110 return "Mechanisms used too many DNS lookups";
00111 break;
00112
00113 case SPF_E_INVALID_IP4:
00114 return "Invalid IPv4 address literal";
00115 break;
00116
00117 case SPF_E_INVALID_IP6:
00118 return "Invalid IPv6 address literal";
00119 break;
00120
00121 case SPF_E_INVALID_PREFIX:
00122 return "Invalid mechanism prefix";
00123 break;
00124
00125 case SPF_E_RESULT_UNKNOWN:
00126 return "SPF result is \"unknown\"";
00127 break;
00128
00129 case SPF_E_UNINIT_VAR:
00130 return "Uninitialized variable";
00131 break;
00132
00133 case SPF_E_MOD_NOT_FOUND:
00134 return "Modifier not found";
00135 break;
00136
00137 case SPF_E_NOT_CONFIG:
00138 return "Not configured";
00139 break;
00140
00141 case SPF_E_DNS_ERROR:
00142 return "DNS lookup failure";
00143 break;
00144
00145 case SPF_E_BAD_HOST_IP:
00146 return "Invalid hostname (possibly an IP address?)";
00147 break;
00148
00149 case SPF_E_BAD_HOST_TLD:
00150 return "Hostname has a missing or invalid TLD";
00151 break;
00152
00153 case SPF_E_MECH_AFTER_ALL:
00154 return "Mechanisms found after the \"all:\" mechanism will be ignored";
00155 break;
00156
00157 case SPF_E_INCLUDE_RETURNED_NONE:
00158 return "include: mechanism returned 'none'";
00159 break;
00160
00161 case SPF_E_RECURSIVE:
00162 return "include: or redirect= caused unlimited recursion";
00163 break;
00164
00165 case SPF_E_MULTIPLE_RECORDS:
00166 return "Multiple SPF or TXT records for domain.";
00167 break;
00168
00169 default:
00170 return "Unknown SPF error code";
00171 break;
00172 }
00173
00174 return 0;
00175 }