]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
ldap: It's fine if the request goes into the backlog
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 14 Oct 2021 17:42:47 +0000 (12:42 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 14 Oct 2021 21:49:36 +0000 (16:49 -0500)
src/lib/ldap/base.c

index c379f944839788982aee598e46c755c6604cd059..b10e4d41b8351017abeef4ee3f8c6d65ff242aee 100644 (file)
@@ -859,9 +859,15 @@ unlang_action_t fr_ldap_trunk_search(rlm_rcode_t *p_result,
 
        query = fr_ldap_search_alloc(ctx, base_dn, scope, filter, attrs, serverctrls, clientctrls);
 
-       if (fr_trunk_request_enqueue(&query->treq, ttrunk->trunk, request, query, NULL) != FR_TRUNK_ENQUEUE_OK) {
+       switch (fr_trunk_request_enqueue(&query->treq, ttrunk->trunk, request, query, NULL)) {
+       case FR_TRUNK_ENQUEUE_OK:
+       case FR_TRUNK_ENQUEUE_IN_BACKLOG:
+               break;
+
+       default:
        error:
                *p_result = RLM_MODULE_FAIL;
+               *out = NULL;
                talloc_free(query);
                return UNLANG_ACTION_FAIL;
        }
@@ -917,8 +923,14 @@ unlang_action_t fr_ldap_trunk_modify(rlm_rcode_t *p_result,
 
        query = fr_ldap_modify_alloc(ctx, dn, mods, serverctrls, clientctrls);
 
-       if (fr_trunk_request_enqueue(&query->treq, ttrunk->trunk, request, query, NULL) != FR_TRUNK_ENQUEUE_OK) {
+       switch (fr_trunk_request_enqueue(&query->treq, ttrunk->trunk, request, query, NULL)) {
+       case FR_TRUNK_ENQUEUE_OK:
+       case FR_TRUNK_ENQUEUE_IN_BACKLOG:
+               break;
+
+       default:
        error:
+               *out = NULL;
                *p_result = RLM_MODULE_FAIL;
                talloc_free(query);
                return UNLANG_ACTION_FAIL;