#include <stdlib.h>
#define AUTH_FAILURE_DELAY_CHECK_MSECS 500
-#define AUTH_PENALTY_ANVIL_PATH "anvil-auth-penalty"
struct auth_request_handler {
int refcount;
pool_t pool;
struct hash_table *requests;
- struct auth_penalty *penalty;
struct auth *auth;
unsigned int connect_uid, client_pid;
handler->callback = callback;
handler->context = context;
handler->master_callback = master_callback;
- handler->penalty = auth_penalty_init(AUTH_PENALTY_ANVIL_PATH);
return handler;
}
/* notify parent that we're done with all requests */
handler->callback(NULL, handler->context);
- auth_penalty_deinit(&handler->penalty);
hash_table_destroy(&handler->requests);
pool_unref(&handler->pool);
}
request->delayed_failure = TRUE;
handler->refcount++;
- auth_penalty_update(handler->penalty, request,
+ auth_penalty_update(request->auth->penalty, request,
request->last_penalty + 1);
request->last_access = ioloop_time;
if (request->last_penalty != 0) {
/* reset penalty */
- auth_penalty_update(handler->penalty, request, 0);
+ auth_penalty_update(request->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(handler->penalty, request, auth_penalty_callback);
+ auth_penalty_lookup(request->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 = {
MEMBER(driver) "static",
MEMBER(args) ""
for (; *p != '\0' && p[1] != '\0'; p += 2)
auth->username_translation[(int)(uint8_t)*p] = p[1];
}
+
+ auth->penalty = auth_penalty_init(AUTH_PENALTY_ANVIL_PATH);
}
void auth_deinit(struct auth **_auth)
auth_request_handler_deinit();
passdb_cache_deinit();
+ auth_penalty_deinit(&auth->penalty);
pool_unref(&auth->pool);
}