extern bool worker, shutdown_request;
extern time_t process_start_time;
+extern struct auth_penalty *auth_penalty;
#endif
request->delayed_failure = TRUE;
handler->refcount++;
- auth_penalty_update(request->auth->penalty, request,
+ auth_penalty_update(auth_penalty, request,
request->last_penalty + 1);
auth_request_refresh_last_access(request);
if (request->last_penalty != 0) {
/* reset penalty */
- auth_penalty_update(request->auth->penalty, request, 0);
+ auth_penalty_update(auth_penalty, request, 0);
}
auth_stream_reply_add(reply, "OK", NULL);
handler->refcount++;
/* before we start authenticating, see if we need to wait first */
- auth_penalty_lookup(request->auth->penalty, request,
+ auth_penalty_lookup(auth_penalty, request,
auth_penalty_callback);
return TRUE;
}
#include "passdb.h"
#include "passdb-cache.h"
#include "auth.h"
-#include "auth-penalty.h"
#include "auth-request-handler.h"
#include <stdlib.h>
#include <unistd.h>
-#define AUTH_PENALTY_ANVIL_PATH "anvil-auth-penalty"
-
struct auth_userdb_settings userdb_dummy_set = {
.driver = "static",
.args = ""
/* use a dummy userdb static. */
userdb_preinit(auth, &userdb_dummy_set);
}
- auth->penalty = auth_penalty_init(AUTH_PENALTY_ANVIL_PATH);
return auth;
}
auth_request_handler_deinit();
passdb_cache_deinit();
- auth_penalty_deinit(&auth->penalty);
pool_unref(&auth->pool);
}
struct auth_passdb *masterdbs;
struct auth_passdb *passdbs;
struct auth_userdb *userdbs;
- struct auth_penalty *penalty;
};
const string_t *auth_mechanisms_get_list(struct auth *auth);
#include "password-scheme.h"
#include "mech.h"
#include "auth.h"
+#include "auth-penalty.h"
#include "auth-request-handler.h"
#include "auth-worker-server.h"
#include "auth-worker-client.h"
#include <unistd.h>
+#define AUTH_PENALTY_ANVIL_PATH "anvil-auth-penalty"
+
enum auth_socket_type {
AUTH_SOCKET_UNKNOWN = 0,
AUTH_SOCKET_CLIENT,
bool worker = FALSE, shutdown_request = FALSE;
time_t process_start_time;
+struct auth_penalty *auth_penalty;
static struct module *modules = NULL;
static struct auth *auth;
module_dir_init(modules);
auth = auth_preinit(global_auth_settings);
+ auth_penalty = auth_penalty_init(AUTH_PENALTY_ANVIL_PATH);
/* Password lookups etc. may require roots, allow it. */
restrict_access_by_env(NULL, FALSE);
mech_deinit(auth->set);
auth_deinit(&auth);
+ auth_penalty_deinit(&auth_penalty);
/* allow modules to unregister their dbs/drivers/etc. before freeing
the whole data structures containing them. */