]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
use shutdown() on connected sockets
authorAlan T. DeKok <aland@freeradius.org>
Thu, 3 Oct 2024 13:27:54 +0000 (09:27 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 8 Oct 2024 13:52:45 +0000 (09:52 -0400)
src/lib/bio/fd.c

index c83ec2f10302227f2cfa5ffe37996a681cabc2ba..165a42c58e3995915ce4765973c6b3e8c7b0f490 100644 (file)
@@ -1193,6 +1193,15 @@ int fr_bio_fd_write_only(fr_bio_t *bio)
                break;
 
        case FR_BIO_FD_CONNECTED:
+               /*
+                *      Further reads are disallowed.
+                */
+               if (shutdown(my->info.socket.fd, SHUT_RD) < 0) {
+                       fr_strerror_printf("Failed shutting down connected socket - %s", fr_syserror(errno));
+                       return -1;
+               }
+               break;
+
        case FR_BIO_FD_ACCEPT:
                fr_strerror_const("Only unconnected sockets can be marked 'write-only'");
                return -1;