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