{
struct auth_request *arequest = request->auth_request;
struct ldap_request_bind *brequest =
- (struct ldap_request_bind *)request;
+ container_of(request, struct ldap_request_bind, request);
i_assert(request->type == LDAP_REQUEST_TYPE_BIND);
i_assert(request->msgid == -1);
struct ldap_request *request)
{
struct ldap_request_search *srequest =
- (struct ldap_request_search *)request;
+ container_of(request, struct ldap_request_search, request);
i_assert(conn->conn_state == LDAP_CONN_STATE_BOUND_DEFAULT);
i_assert(request->msgid == -1);
struct ldap_request *request, unsigned int idx,
struct db_ldap_result *res)
{
- struct ldap_request_search *srequest = NULL;
+ struct ldap_request_search *srequest =
+ container_of(request, struct ldap_request_search, request);
const struct ldap_request_named_result *named_res;
int ret;
bool final_result;
i_assert(conn->pending_count == 1);
conn->conn_state = LDAP_CONN_STATE_BOUND_AUTH;
} else {
- srequest = (struct ldap_request_search *)request;
switch (ldap_msgtype(res->msg)) {
case LDAP_RES_SEARCH_ENTRY:
case LDAP_RES_SEARCH_RESULT:
if (ret != LDAP_SUCCESS && ret != LDAP_NO_SUCH_OBJECT &&
request->type == LDAP_REQUEST_TYPE_SEARCH) {
/* handle search failures here */
- struct ldap_request_search *srequest =
- (struct ldap_request_search *)request;
-
if (!array_is_created(&srequest->named_results)) {
e_error(authdb_event(request->auth_request),
"ldap_search_ext(base=%s filter=%s) failed: %s",
{
if (request->type == LDAP_REQUEST_TYPE_SEARCH) {
struct ldap_request_search *srequest =
- (struct ldap_request_search *)request;
+ container_of(request, struct ldap_request_search, request);
struct ldap_request_named_result *named_res;
if (srequest->result != NULL)
struct ldap_request *request, LDAPMessage *res)
{
struct passdb_ldap_request *ldap_request =
- (struct passdb_ldap_request *)request;
+ container_of(request, struct passdb_ldap_request, request.ldap);
struct auth_request *auth_request = request->auth_request;
if (res == NULL || ldap_msgtype(res) == LDAP_RES_SEARCH_RESULT) {
struct ldap_request *ldap_request, LDAPMessage *res)
{
struct passdb_ldap_request *passdb_ldap_request =
- (struct passdb_ldap_request *)ldap_request;
+ container_of(ldap_request, struct passdb_ldap_request, request.ldap);
struct auth_request *auth_request = ldap_request->auth_request;
enum passdb_result passdb_result;
struct ldap_request_bind *brequest)
{
struct passdb_ldap_request *passdb_ldap_request =
- (struct passdb_ldap_request *)brequest;
+ container_of(brequest, struct passdb_ldap_request, request.bind);
struct auth_request *auth_request = brequest->request.auth_request;
if (*auth_request->mech_password == '\0') {
LDAPMessage *res)
{
struct passdb_ldap_request *passdb_ldap_request =
- (struct passdb_ldap_request *)ldap_request;
+ container_of(ldap_request, struct passdb_ldap_request, request.ldap);
struct auth_request *auth_request = ldap_request->auth_request;
struct passdb_ldap_request *brequest;
char *dn;
{
struct passdb_module *_module = auth_request->passdb->passdb;
struct ldap_passdb_module *module =
- (struct ldap_passdb_module *)_module;
+ container_of(_module, struct ldap_passdb_module, module);
struct ldap_connection *conn = module->conn;
struct ldap_request_search *srequest = &request->request.search;
{
struct passdb_module *_module = auth_request->passdb->passdb;
struct ldap_passdb_module *module =
- (struct ldap_passdb_module *)_module;
+ container_of(_module, struct ldap_passdb_module, module);
struct ldap_connection *conn = module->conn;
struct ldap_request_search *srequest = &request->request.search;
{
struct passdb_module *_module = auth_request->passdb->passdb;
struct ldap_passdb_module *module =
- (struct ldap_passdb_module *)_module;
+ container_of(_module, struct ldap_passdb_module, module);
struct ldap_connection *conn = module->conn;
struct ldap_request_bind *brequest = &request->request.bind;
{
struct passdb_module *_module = request->passdb->passdb;
struct ldap_passdb_module *module =
- (struct ldap_passdb_module *)_module;
+ container_of(_module, struct ldap_passdb_module, module);
struct ldap_connection *conn = module->conn;
struct event *event = authdb_event(request);
struct passdb_ldap_request *ldap_request;
static void passdb_ldap_init(struct passdb_module *_module)
{
struct ldap_passdb_module *module =
- (struct ldap_passdb_module *)_module;
+ container_of(_module, struct ldap_passdb_module, module);
if (!module->module.blocking || worker)
db_ldap_connect_delayed(module->conn);
static void passdb_ldap_deinit(struct passdb_module *_module)
{
struct ldap_passdb_module *module =
- (struct ldap_passdb_module *)_module;
+ container_of(_module, struct ldap_passdb_module, module);
db_ldap_unref(&module->conn);
}
LDAPMessage *res)
{
struct userdb_ldap_request *urequest =
- (struct userdb_ldap_request *) request;
+ container_of(request, struct userdb_ldap_request, request.request);
+
struct auth_request *auth_request =
urequest->request.request.auth_request;
userdb_callback_t *callback)
{
struct userdb_module *_module = auth_request->userdb->userdb;
- struct ldap_userdb_module *module = (struct ldap_userdb_module *)_module;
+ struct ldap_userdb_module *module =
+ container_of(_module, struct ldap_userdb_module, module);
struct ldap_connection *conn = module->conn;
struct event *event = authdb_event(auth_request);
LDAPMessage *res)
{
struct userdb_iter_ldap_request *urequest =
- (struct userdb_iter_ldap_request *)request;
+ container_of(request, struct userdb_iter_ldap_request, request.request);
struct ldap_userdb_iterate_context *ctx = urequest->ctx;
if (res == NULL || ldap_msgtype(res) == LDAP_RES_SEARCH_RESULT) {
{
struct userdb_module *_module = auth_request->userdb->userdb;
struct ldap_userdb_module *module =
- (struct ldap_userdb_module *)_module;
+ container_of(_module, struct ldap_userdb_module, module);
struct ldap_connection *conn = module->conn;
struct event *event = authdb_event(auth_request);
static void userdb_ldap_iterate_next(struct userdb_iterate_context *_ctx)
{
struct ldap_userdb_iterate_context *ctx =
- (struct ldap_userdb_iterate_context *)_ctx;
+ container_of(_ctx, struct ldap_userdb_iterate_context, ctx);
if (_ctx->failed) {
_ctx->callback(NULL, _ctx->context);
static int userdb_ldap_iterate_deinit(struct userdb_iterate_context *_ctx)
{
struct ldap_userdb_iterate_context *ctx =
- (struct ldap_userdb_iterate_context *)_ctx;
+ container_of(_ctx, struct ldap_userdb_iterate_context, ctx);
int ret = _ctx->failed ? -1 : 0;
db_ldap_enable_input(ctx->conn, TRUE);
static void userdb_ldap_init(struct userdb_module *_module)
{
struct ldap_userdb_module *module =
- (struct ldap_userdb_module *)_module;
+ container_of(_module, struct ldap_userdb_module, module);
if (!module->module.blocking || worker)
db_ldap_connect_delayed(module->conn);
static void userdb_ldap_deinit(struct userdb_module *_module)
{
struct ldap_userdb_module *module =
- (struct ldap_userdb_module *)_module;
+ container_of(_module, struct ldap_userdb_module, module);
db_ldap_unref(&module->conn);
}