From: Marco Bettini Date: Fri, 15 Sep 2023 14:07:44 +0000 (+0000) Subject: auth: ldap_request_send_subquery() - Add handler for ldap_multi X-Git-Tag: 2.4.0~2597 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a7537342a4995282489f4e9d09ad47aee312295c;p=thirdparty%2Fdovecot%2Fcore.git auth: ldap_request_send_subquery() - Add handler for ldap_multi --- diff --git a/src/auth/db-ldap.c b/src/auth/db-ldap.c index 7632bd331f..4076d4cd94 100644 --- a/src/auth/db-ldap.c +++ b/src/auth/db-ldap.c @@ -642,7 +642,6 @@ ldap_request_send_subquery(struct ldap_connection *conn, const struct var_expand_table *var_expand_table = auth_request_get_var_expand_table(auth_request, NULL); const struct var_expand_func_table *ptr; - struct var_expand_func_table *ftable; string_t *tmp_str = t_str_new(64); ARRAY(struct var_expand_func_table) var_funcs_table; t_array_init(&var_funcs_table, 8); @@ -650,12 +649,18 @@ ldap_request_send_subquery(struct ldap_connection *conn, for(ptr = auth_request_var_funcs_table; ptr->key != NULL; ptr++) { array_push_back(&var_funcs_table, ptr); } - ftable = array_append_space(&var_funcs_table); - ftable->key = "ldap"; - ftable->func = db_ldap_field_subquery_find; - ftable = array_append_space(&var_funcs_table); - ftable->key = "ldap_ptr"; - ftable->func = db_ldap_field_subquery_find; + + static struct var_expand_func_table subquery_table[] = { + { "ldap", db_ldap_field_subquery_find }, + { "ldap_multi", db_ldap_field_subquery_find }, + { "ldap_ptr", db_ldap_field_subquery_find }, + { NULL, NULL } + }; + + for(ptr = subquery_table; ptr->key != NULL; ptr++) { + array_push_back(&var_funcs_table, ptr); + } + array_append_zero(&var_funcs_table); i_zero(&ctx);