- /* We got a result. Now see if we should return OK or FAIL for it */
- SPF_EVALUATE:
- debug_printf("SPF result is %s (%d)\n", SPF_strresult(rc), rc);
-
- if (action == SPF_PROCESS_GUESS && (!strcmp (SPF_strresult(rc), "none")))
- return spf_process(listptr, spf_envelope_sender, SPF_PROCESS_FALLBACK);
-
- while ((spf_result_id = string_nextinlist(&list, &sep,
- spf_result_id_buffer,
- sizeof(spf_result_id_buffer))) != NULL) {
- int negate = 0;
- int result = 0;
-
- /* Check for negation */
- if (spf_result_id[0] == '!') {
- negate = 1;
- spf_result_id++;
- };
-
- /* Check the result identifier */
- result = Ustrcmp(spf_result_id, spf_result_id_list[rc].name);
- if (!negate && result==0) return OK;
- if (negate && result!=0) return OK;
- };
-
- /* no match */
- return FAIL;
+while ((spf_result_id = string_nextinlist(&list, &sep, NULL, 0)))
+ {
+ BOOL negate, result;
+
+ if ((negate = spf_result_id[0] == '!'))
+ spf_result_id++;
+
+ result = Ustrcmp(spf_result_id, spf_result_id_list[rc].name) == 0;
+ if (negate != result) return OK;
+ }
+
+/* no match */
+return FAIL;
+}
+
+
+
+gstring *
+authres_spf(gstring * g)
+{
+if (!spf_result) return g;
+
+return string_append(g, 4, US";\\n\\tspf=", spf_result,
+ US" smtp.mailfrom=", expand_string(US"$sender_address_domain"));