static void
test_callback(struct auth_client_request *req, enum auth_request_status status,
- const char *b64, const char *const *args, void *context)
+ const char *log_error ATTR_UNUSED, const char *b64,
+ const char *const *args, void *context)
{
struct auth_client *client ATTR_UNUSED = context;
if (status == AUTH_REQUEST_STATUS_CONTINUE) {
static void
auth_callback(struct auth_client_request *request,
- enum auth_request_status status, const char *data_base64,
- const char *const *args, void *context)
+ enum auth_request_status status, const char *log_error ATTR_UNUSED,
+ const char *data_base64, const char *const *args, void *context)
{
struct authtest_input *input = context;
const unsigned char *sasl_output;
if (args == NULL && status != AUTH_REQUEST_STATUS_OK)
args = temp_failure_args;
}
- callback(request, status, data_base64, args, request->context);
+ callback(request, status, "Authentication failure", data_base64, args, request->context);
}
static void
/* Continue/finish authentication. data_base64 is set for
AUTH_REQUEST_STATUS_CONTINUE and perhaps AUTH_REQUEST_STATUS_OK.
- args is set for all statuses except AUTH_REQUEST_STATUS_CONTINUE. */
+ args is set for all statuses except AUTH_REQUEST_STATUS_CONTINUE.
+ log_error contains an error that can be logged as the reason why
+ authentication failed. */
typedef void auth_request_callback_t(struct auth_client_request *request,
enum auth_request_status status,
+ const char *log_error,
const char *data_base64,
const char *const *args, void *context);
static void
test_client_auth_callback(struct auth_client_request *request,
enum auth_request_status status,
+ const char *log_error ATTR_UNUSED,
const char *data_base64 ATTR_UNUSED,
const char *const *args ATTR_UNUSED, void *context)
{
static void
proxy_redirect_reauth_callback(struct auth_client_request *request,
enum auth_request_status status,
+ const char *log_error ATTR_UNUSED,
const char *data_base64 ATTR_UNUSED,
const char *const *args, void *context)
{
static void
authenticate_callback(struct auth_client_request *request,
- enum auth_request_status status, const char *data_base64,
+ enum auth_request_status status,
+ const char *log_error ATTR_UNUSED,
+ const char *data_base64,
const char *const *args, void *context)
{
struct client *client = context;