- spf_header_comment = spf_output.header_comment ? (uschar *)spf_output.header_comment : NULL;
- spf_received = spf_output.received_spf ? (uschar *)spf_output.received_spf : NULL;
- spf_result = (uschar *)SPF_strresult(spf_output.result);
- spf_smtp_comment = spf_output.smtp_comment ? (uschar *)spf_output.smtp_comment : NULL;
-
- rc = spf_output.result;
-
- /* 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);
- 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;
+ spf_header_comment = US SPF_response_get_header_comment(spf_response);
+ spf_received = US SPF_response_get_received_spf(spf_response);
+ spf_result = US SPF_strresult(SPF_response_result(spf_response));
+ spf_smtp_comment = US SPF_response_get_smtp_comment(spf_response);
+
+ rc = SPF_response_result(spf_response);
+ }
+
+/* We got a result. Now see if we should return OK or FAIL for it */
+DEBUG(D_acl) 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, 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;