dovecot-2.0: auth: auth_penalty is now a global single instance.
dovecot at dovecot.org
dovecot at dovecot.org
Sat Mar 13 19:36:38 EET 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/56fc8bbe114c
changeset: 10895:56fc8bbe114c
user: Timo Sirainen <tss at iki.fi>
date: Sat Mar 13 18:08:39 2010 +0200
description:
auth: auth_penalty is now a global single instance.
diffstat:
src/auth/auth-common.h | 1 +
src/auth/auth-request-handler.c | 6 +++---
src/auth/auth.c | 5 -----
src/auth/auth.h | 1 -
src/auth/main.c | 6 ++++++
5 files changed, 10 insertions(+), 9 deletions(-)
diffs (128 lines):
diff -r 5642902ae47b -r 56fc8bbe114c src/auth/auth-common.h
--- a/src/auth/auth-common.h Sat Mar 13 17:35:21 2010 +0200
+++ b/src/auth/auth-common.h Sat Mar 13 18:08:39 2010 +0200
@@ -6,5 +6,6 @@
extern bool worker, shutdown_request;
extern time_t process_start_time;
+extern struct auth_penalty *auth_penalty;
#endif
diff -r 5642902ae47b -r 56fc8bbe114c src/auth/auth-request-handler.c
--- a/src/auth/auth-request-handler.c Sat Mar 13 17:35:21 2010 +0200
+++ b/src/auth/auth-request-handler.c Sat Mar 13 18:08:39 2010 +0200
@@ -173,7 +173,7 @@
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);
@@ -211,7 +211,7 @@
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);
@@ -412,7 +412,7 @@
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;
}
diff -r 5642902ae47b -r 56fc8bbe114c src/auth/auth.c
--- a/src/auth/auth.c Sat Mar 13 17:35:21 2010 +0200
+++ b/src/auth/auth.c Sat Mar 13 18:08:39 2010 +0200
@@ -10,14 +10,11 @@
#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 = ""
@@ -78,7 +75,6 @@
/* use a dummy userdb static. */
userdb_preinit(auth, &userdb_dummy_set);
}
- auth->penalty = auth_penalty_init(AUTH_PENALTY_ANVIL_PATH);
return auth;
}
@@ -261,6 +257,5 @@
auth_request_handler_deinit();
passdb_cache_deinit();
- auth_penalty_deinit(&auth->penalty);
pool_unref(&auth->pool);
}
diff -r 5642902ae47b -r 56fc8bbe114c src/auth/auth.h
--- a/src/auth/auth.h Sat Mar 13 17:35:21 2010 +0200
+++ b/src/auth/auth.h Sat Mar 13 18:08:39 2010 +0200
@@ -39,7 +39,6 @@
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);
diff -r 5642902ae47b -r 56fc8bbe114c src/auth/main.c
--- a/src/auth/main.c Sat Mar 13 17:35:21 2010 +0200
+++ b/src/auth/main.c Sat Mar 13 18:08:39 2010 +0200
@@ -15,6 +15,7 @@
#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"
@@ -23,6 +24,8 @@
#include <unistd.h>
+#define AUTH_PENALTY_ANVIL_PATH "anvil-auth-penalty"
+
enum auth_socket_type {
AUTH_SOCKET_UNKNOWN = 0,
AUTH_SOCKET_CLIENT,
@@ -32,6 +35,7 @@
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;
@@ -62,6 +66,7 @@
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);
@@ -107,6 +112,7 @@
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. */
More information about the dovecot-cvs
mailing list