1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- =pod
- =head1 NAME
- SSL_free_buffers, SSL_alloc_buffers - manage SSL structure buffers
- =head1 SYNOPSIS
- #include <openssl/ssl.h>
- int SSL_free_buffers(SSL *ssl);
- int SSL_alloc_buffers(SSL *ssl);
- =head1 DESCRIPTION
- SSL_free_buffers() frees the read and write buffers of the given B<ssl>.
- SSL_alloc_buffers() allocates the read and write buffers of the given B<ssl>.
- The B<SSL_MODE_RELEASE_BUFFERS> mode releases read or write buffers whenever
- the buffers have been drained. These functions allow applications to manually
- control when buffers are freed and allocated.
- After freeing the buffers, the buffers are automatically reallocated upon a
- new read or write. The SSL_alloc_buffers() does not need to be called, but
- can be used to make sure the buffers are preallocated. This can be used to
- avoid allocation during data processing or with CRYPTO_set_mem_functions()
- to control where and how buffers are allocated.
- These functions are no-ops when used with QUIC SSL objects. For QUIC,
- SSL_free_buffers() always fails, and SSL_alloc_buffers() always succeeds.
- =head1 RETURN VALUES
- The following return values can occur:
- =over 4
- =item 0 (Failure)
- The SSL_free_buffers() function returns 0 when there is pending data to be
- read or written. The SSL_alloc_buffers() function returns 0 when there is
- an allocation failure.
- =item 1 (Success)
- The SSL_free_buffers() function returns 1 if the buffers have been freed. This
- value is also returned if the buffers had been freed before calling
- SSL_free_buffers().
- The SSL_alloc_buffers() function returns 1 if the buffers have been allocated.
- This value is also returned if the buffers had been allocated before calling
- SSL_alloc_buffers().
- =back
- =head1 SEE ALSO
- L<ssl(7)>,
- L<SSL_free(3)>, L<SSL_clear(3)>,
- L<SSL_new(3)>, L<SSL_CTX_set_mode(3)>,
- L<CRYPTO_set_mem_functions(3)>
- =head1 COPYRIGHT
- Copyright 2017-2023 The OpenSSL Project Authors. All Rights Reserved.
- Licensed under the Apache License 2.0 (the "License"). You may not use
- this file except in compliance with the License. You can obtain a copy
- in the file LICENSE in the source distribution or at
- L<https://www.openssl.org/source/license.html>.
- =cut
|