auth-request.h revision dc8beee89ba9409c1d70ecdfe6ad6b35635b8778
#ifndef __AUTH_REQUEST_H
#define __AUTH_REQUEST_H
#include "network.h"
#include "mech.h"
#include "userdb.h"
#include "passdb.h"
struct auth_client_connection;
enum auth_request_state {
};
struct auth_request {
int refcount;
enum auth_request_state state;
/* user contains the user who is being authenticated.
When master user is logging in as someone else, it gets more
complicated. Initially user is set to master's username and the
requested_login_user is set to destination username. After masterdb
has validated user as a valid master user, master_user is set to
user and user is set to requested_login_user. */
char *mech_password; /* set if verify_plain() is called */
char *passdb_password; /* set after password lookup if successful */
/* extra_fields are returned in authentication reply. Fields prefixed
with "userdb_" are skipped. If prefetch userdb is used, it uses
the "userdb_" prefixed fields. */
struct auth_stream_reply *extra_fields;
struct mech_module *mech;
struct auth_passdb *passdb;
struct auth_userdb *userdb;
unsigned int connect_uid;
unsigned int client_pid;
unsigned int id;
const char *service;
union {
void *context;
struct auth_master_connection *master;
unsigned int successful:1;
unsigned int internal_failure:1;
unsigned int passdb_internal_failure:1;
unsigned int delayed_failure:1;
unsigned int accept_input:1;
unsigned int no_failure_delay:1;
unsigned int no_login:1;
unsigned int no_password:1;
unsigned int skip_password_check:1;
unsigned int proxy:1;
unsigned int cert_username:1;
/* ... mechanism specific data ... */
};
struct auth_request *
const char *password,
const char *username,
const char **error_r);
const char *default_scheme);
const char *plain_password,
const char *crypted_password,
const struct var_expand_table *
const char *(*escape_func)(const char *));
const char *subsystem,
const char *subsystem,
const char *subsystem,
struct auth_request *request);
const char *credentials,
struct auth_request *request);
struct auth_request *request);
#endif