]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Ensure that cookie storage which fails to send is left on the queue
authorNick Porter <nick@portercomputing.co.uk>
Thu, 17 Nov 2022 19:46:52 +0000 (19:46 +0000)
committerNick Porter <nick@portercomputing.co.uk>
Fri, 18 Nov 2022 18:09:41 +0000 (18:09 +0000)
src/listen/ldap_sync/proto_ldap_sync_ldap.c

index 17b75cb9285ae0512bd65f44bccfe550024ae2b4..7a4e8d6fccd2a7d923e43d64111cc1064dc83b94 100644 (file)
@@ -299,8 +299,12 @@ int ldap_sync_cookie_send(sync_packet_ctx_t *sync_packet_ctx)
        if (fr_internal_encode_list(dbuff, &pairs, NULL) < 0) goto error;
        talloc_free(local);
 
-       fr_network_listen_send_packet(thread->nr, thread->li, thread->li, fr_dbuff_buff(dbuff),
-                                     fr_dbuff_used(dbuff), fr_time(), sync_packet_ctx);
+       if (fr_network_listen_send_packet(thread->nr, thread->li, thread->li, fr_dbuff_buff(dbuff),
+                                         fr_dbuff_used(dbuff), fr_time(), sync_packet_ctx) < 0) {
+               sync_packet_ctx->status = SYNC_PACKET_PENDING;
+               return -1;
+       }
+
        sync_packet_ctx->status = SYNC_PACKET_PROCESSING;
 
        return 0;