|  | =pod | 
|  |  | 
|  | =head1 NAME | 
|  |  | 
|  | OPENSSL_fork_prepare, | 
|  | OPENSSL_fork_parent, | 
|  | OPENSSL_fork_child | 
|  | - OpenSSL fork handlers | 
|  |  | 
|  | =head1 SYNOPSIS | 
|  |  | 
|  | #include <openssl/crypto.h> | 
|  |  | 
|  | void OPENSSL_fork_prepare(void); | 
|  | void OPENSSL_fork_parent(void); | 
|  | void OPENSSL_fork_child(void); | 
|  |  | 
|  | =head1 DESCRIPTION | 
|  |  | 
|  | OpenSSL has state that should be reset when a process forks. For example, | 
|  | the entropy pool used to generate random numbers (and therefore encryption | 
|  | keys) should not be shared across multiple programs. | 
|  | The OPENSSL_fork_prepare(), OPENSSL_fork_parent(), and OPENSSL_fork_child() | 
|  | functions are used to reset this internal state. | 
|  |  | 
|  | Platforms without fork(2) will probably not need to use these functions. | 
|  | Platforms with fork(2) but without pthread_atfork(3) will probably need | 
|  | to call them manually, as described in the following paragraph.  Platforms | 
|  | such as Linux that have both functions will normally not need to call these | 
|  | functions as the OpenSSL library will do so automatically. | 
|  |  | 
|  | L<OPENSSL_init_crypto(3)> will register these functions with the appropriate | 
|  | handler, when the B<OPENSSL_INIT_ATFORK> flag is used. For other | 
|  | applications, these functions can be called directly. They should be used | 
|  | according to the calling sequence described by the pthread_atfork(3) | 
|  | documentation, which is summarized here.  OPENSSL_fork_prepare() should | 
|  | be called before a fork() is done.  After the fork() returns, the parent | 
|  | process should call OPENSSL_fork_parent() and the child process should | 
|  | call OPENSSL_fork_child(). | 
|  |  | 
|  | =head1 RETURN VALUES | 
|  |  | 
|  | OPENSSL_fork_prepare(), OPENSSL_fork_parent() and OPENSSL_fork_child() do not | 
|  | return values. | 
|  |  | 
|  | =head1 SEE ALSO | 
|  |  | 
|  | L<OPENSSL_init_crypto(3)> | 
|  |  | 
|  | =head1 HISTORY | 
|  |  | 
|  | These functions were added in OpenSSL 1.1.1. | 
|  |  | 
|  | =head1 COPYRIGHT | 
|  |  | 
|  | Copyright 2017-2018 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 |