# dkim_policy()

SYNOPSIS |
    #include <dkim.h>
    DKIM_STAT dkim_policy(
    	DKIM *dkim,
            bool *test,
    	bool *susp,
    	dkim_policy_t *pcode,
    	dkim_handling_t *hcode,
    	DKIM_PSTATE * pstate
    );
Retrieve and evaluate the sender signing policy (SSP) for a message.
DESCRIPTION |
Called When | `dkim_policy()` is called after `dkim_eom()` when `dkim` is a verifying handle, i.e. one returned by an earlier call to `dkim_verify()`.
ARGUMENTS |
Argument | Description
--- | ---
dkim | Message-specific handle, returned by `dkim_verify()`.
test | A pointer to boolean that is set to be either TRUE (if the policy indicates the domain is using DKIM in a test mode), or FALSE otherwise.
susp | A pointer to boolean that is set to be either TRUE (if the policy indicates the message is suspicious), or FALSE otherwise.
pcode | A pointer to a `dkim_policy_t` which is updated to contain the policy type retrieved from the sender. This can be NULL if that information is not of interest to the caller.
hcode | A pointer to a `dkim_handling_t` which is updated to contain the recommendation for handling suspicious messages as retrieved from the sender. This can be NULL if that information is not of interest to the caller.
pstate | A caller may wish to use this function in a re-entrant manner, such as when using a policy lookup callback that may return `DKIM_CBSTAT_TRYAGAIN`. In that case, the caller should allocate a `DKIM_PSTATE` and initialize it using `memset()` to fill it with all-zeroes, then pass a pointer to it to this function. If the callback does return `DKIM_CBSTAT_TRYAGAIN`, `pstate` will be updated to contain internal state information so that subsequent calls to this function will simply re-attempt the lookup that could not be completed on the previous attempt, essentially picking up where it left off (avoiding repeated lookups). Instead, if `pstate` is NULL, the entire policy process will be repeated on each call.
NOTES | It is an error to call this function with a handle that was created using `dkim_sign()`. This function will return `DKIM_STAT_SYNTAX` if the sender's domain could not be determined or if the SSP record retrieved is not syntactically valid.

Copyright (c) 2005, 2007 Sendmail, Inc. and its suppliers. All rights reserved.
By using this file, you agree to the terms and conditions set forth in the LICENSE.