]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
keep blocked flag if we can't flush when already blocked
authorAlan T. DeKok <aland@freeradius.org>
Wed, 18 Feb 2026 18:56:44 +0000 (13:56 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 18 Feb 2026 18:56:44 +0000 (13:56 -0500)
src/lib/bio/fd_write.h

index 448b8ab5bd7bc8aa6c858ec9faf404560cf83029..83590bc51b5938a068fef337f27a49a0c71d4db0 100644 (file)
@@ -10,7 +10,7 @@ if (rcode > 0) {
        int error;
 
        /*
-        *      We weren't blocked, but we are now.
+        *      We weren't blocked, but we may be blocked now.
         */
        if (!my->info.write_blocked) {
                if ((size_t) rcode == size) {
@@ -34,7 +34,7 @@ if (rcode > 0) {
         *      We were blocked.  We're still blocked if we wrote _less_ than the amount of requested data.
         *      If we wrote all of the data which was requested, then we're unblocked.
         */
-       my->info.write_blocked = ((size_t) rcode == size);
+       my->info.write_blocked = ((size_t) rcode < size);
 
        /*
         *      Call the "resume" function if we transitioned to being unblocked.